# Blueprint config

Inside the `blueprints/aurora` folder, you can create unlimited files that can contain a list of recipes.

{% hint style="info" %}
You can create recipes the same way for the vanilla crafting table. Put those into the  `blueprints/vanilla/crafting_table`folder.
{% endhint %}

{% hint style="warning" %}
If you create multiple recipes that have the same shape with the same ingredients and only ingredient amounts are different, only the recipe registered at the end will work. Changing just the amount of ingredients can't create a unique recipe.
{% endhint %}

This is how one file should look like:

```yaml
recipes:
    # Unique ID of the recipe
  - id: emerald-recipe
    # Type of the custom recipe (shaped or shapeless) by default it is always shaped
    shapeless: false
    # workbench the recipe is craftable on (required)
    workbench: default
    # Permission to unlock/craft the recipe
    permission: "craft.emerald"
    # Result item of the recipe
    # (can reference the ingredient item from the crafting inventory by using ingredient:2 for the 2nd ingredient for shaped recipes)
    result: "minecraft:emerald/32"
    # Will add alternative shapes just like vanilla does if enabled
    # Requires a perfectly square workbench
    symmetry: true
    # Optional, can be omitted. If you set it to false, the item can't be quick crafted
    quick-craft: false
    # Ingredients required to craft the recipe
    ingredients:
      - "minecraft:diamond/32"
      - "minecraft:diamond/32"
      - ""
      - "minecraft:diamond/32"
      - "minecraft:diamond/32"
      - ""
      - ""
      - ""
      - ""
    # This is only relevant if you register the recipe to the vanilla crafting table
    # Fully optional
    vanilla-options:
      # vanilla recipe book category
      category: "equipment"
      # This is also used in the plugins own recipe book to group recipes together
      # Only group recipes together if they have the same result!
      group: "recibe book group"
      # item_type for dynamic choice or exact for items that don't change.
      # Exact choice can't be used if your items can change overtime (eg swords), but it
      # will look better in the vanilla recipe book. Exact choice is not usable
      choice-type: "item_type"
    # Optional commands to run upon successful crafting
    # ONLY WORKS WITH CUSTOM WORKBENCHES
    on-craft:
      - "[message] You crafted {amount} {result}!"
    # Stuff to customize looks in various menus
    display-options:
      locked-lore:
        - "&7You need &aEmerald collection level 5 &7to unlock this recipe."
    # Defines how to merge data from the ingredients into the result item (optional)
    # This is basically smithing/anvil heaven
    merge-options:
      # Stuff from the second 2nd will be merged into the result item
      # All of these are optional and you can specify merge options for every ingredient.
      2:
        # Merges enchants. Works similar to anvil.
        enchants: true
        # Transfers the trim state from the ingredient to the result item (if applicable)
        trim: true
        # Will restore 50
        restore-durability: 50
        # Will copy the durability loss from the ingredient into the result
        copy-durability: true
        # This will do the same thing that anvils do
        merge-durability: true
        # You can copy PersistentDataContainer values as well
        pdc:
          - "ecoscrolls:scrolls"
          - "reforges:reforge"
```

Let's go through each option one by one:

* **id**: This is used to look up recipes using the /recipe \<id> command.
* **permission**: Required permission to unlock the recipe. Optional.
* **workbench**: Specify what workbench this recipe should be assigned to. If you omit this field, it will be assigned to the `default`workbench if exists.&#x20;
* **display-options -> locked-lore**: Here, you can define the menu item lore in the recipe book while the recipe is locked. Optional.
* **shapeless**: if it is true, then the recipe will act as a shapeless recipe. Optional. By default, everything is a shaped recipe.
* **result**: This defines what should be the result of the recipe. Required. It can't be air.
* **Ingredients: This is the list of ingredients for the recipe.** If the recipe is shaped, you need to define a list that has the same amount of items as your crafting matrix slots (otherwise it fill be filled with air). If you want an empty slot, just use an empty string like `- ""` .

## Format of the items

In the ingredients and result configs, you might have already noticed the strange format of the items. Every item has a namespace. This can be either minecraft for vanilla materials or usually the name of the plugin which provides the item you are trying to use.&#x20;

So the format is `namespace:item_id`.

You always need to set the amount of the items. This is done by appending `/number` at the end of the item ID. If you don't add the number, it will default to 1.

So the final format is `namespace:item_id/amount`

## Supported item plugins with examples

* MythicMobs (and Crucible) - `mythicmobs:item_id`
* MMOItems - `mmoitems:type:id`
* ExecutableItems - `ei:item_id`
* ExecutableBlocks - `eb:item_id`
* Nexo - `nexo:item_id`
* Oraxen - `oraxen:item_id`
* ItemsAdder - `ia:ia_namespace:item_id`
* HeadDatabase - `hdb:id`&#x20;
* CustomFishing - `customfishing:id`&#x20;
* EvenMoreFish - `emf:rarity:fish_id`&#x20;
* KGenerators - `kgenerators:generator_id`&#x20;
* ItemEdit - `itemedit:server_item_id`&#x20;
* CraftEngine - `craftengine:item_id` -  can be namespaced like `craftengine:default:some_hat`
* CrackShot - `crackshot:item_id`
* EcoItems - `eco:ecoitems:item_id`&#x20;
* EcoArmor - `eco:ecoarmor:armor_id`
* Talismans - `eco:talismans:talisman_id`&#x20;
* EcoScrolls - `eco:ecoscrolls:scoll_scrollid`
* Other eco plugins are also supported, the item lookup works the same way as they describe in their wiki. They are just prefixed once more with `eco:` here.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.auroramc.gg/auroracrafting/configuration/blueprint-config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
