> For the complete documentation index, see [llms.txt](https://axiomemu.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axiomemu.gitbook.io/docs/data/plugins/inscription/recipes.md).

# Recipes.xml

Recipes.xml - the Inscription chaos machine recipes (open slot, inscribe pick / random, Forbidden Inscribe, empower) with fail modes, protection and binding

The chaos machine recipes that spend Potential. Each recipe uses the normal [ChaosMix recipe format](/docs/data/plugins/chaosmix/recipes.md) plus one `<Inscription>` child that says what the mix does. The recipes are added to the chaos machine when the plugin loads and vanish when it is off. See the [overview](/docs/data/plugins/inscription.md) for how the system works.

## File Location

```
Data/Plugins/Inscription/Recipes.xml
```

## Dependencies

| Depends On                                                                                                       | Purpose                                                                                                     |
| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| [ChaosMix Recipes](/docs/data/plugins/chaosmix/recipes.md)                                                       | `<Display>`, `<Requirements>`, `<ZenCost>`, `<SuccessRate>`, `<Options>`, `<Sources>` work exactly as there |
| [ChaosMix Formulas](/docs/data/plugins/chaosmix/formulas.md) / [Options](/docs/data/plugins/chaosmix/options.md) | Success formula, charms                                                                                     |
| [Pools.xml](/docs/data/plugins/inscription/pools.md)                                                             | Pool names for `Pool`, and the catalysts that must appear as `<Source>` rows                                |
| [GameStrings.xml](/docs/data/gamestrings.md)                                                                     | `NameText` / `DescText` ids (shipped: 11200-11214)                                                          |
| [ItemStack.xml](/docs/data/item/itemstack.md)                                                                    | Payment jewels and catalysts must stack                                                                     |

## Recipe

```xml
<Recipe MixType="14" MixID="201">
  <Display NameText1="11202" DescText1="11203" Width="-1" Height="-1" Category="7" Result="main"/>
  <Requirements Level="10"/>
  <ZenCost Type="A" Value="10000000"/>
  <SuccessRate FormulaId="1" MaxRate="70"/>
  <Options MixOptionId="1" CharmOptionId="1" ChaosCharmOptionId="1"/>
  <Sources> ... </Sources>
  <Inscription Kind="inscribe" Mode="choose" FailMode="catalyst" Bind="none"/>
</Recipe>
```

Differences from ChaosMix\_Recipes.xml:

* `MixType="14"` = the Chaos Goblin's **Inscription** tab. That tab only matches these recipes and shows the live panel (Potential, slots, cost, why a mix cannot run). `MixType="0"` also works, but then the recipes sit with the normal goblin mixes and there is no panel.
* **Do not set `MixIndex`.** It is assigned automatically.
* `MixID` is only a label here. Keep it between 200 and 255.
* **No `<Rewards>`.** The item itself comes back.
* A `<Recipe>` without an `<Inscription>` child is skipped.

## Inscription

| Attribute    | Type                               | Default    | Effect                                                                                                                                              |
| ------------ | ---------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Kind`       | `open` / `inscribe` / `empower`    | `inscribe` | What the mix does (below)                                                                                                                           |
| `Pool`       | pool name                          | `""` (any) | Only entries of this [Pools.xml](/docs/data/plugins/inscription/pools.md) pool. Empty = any pool that holds the item. Unknown name = recipe skipped |
| `Mode`       | `choose` / `random`                | `choose`   | Inscribe only. `choose` = the catalyst picks the entry. `random` = rolled by `Weight`                                                               |
| `FailMode`   | `catalyst` / `corrupt` / `destroy` | `catalyst` | What a failed roll costs (below)                                                                                                                    |
| `Protection` | `"Group,Index"`                    | none       | Item that turns a `destroy` failure into `catalyst`                                                                                                 |
| `Bind`       | `none` / `onInscribe`              | `none`     | `onInscribe` = on success the item is bound to the character                                                                                        |

### Kind

| Kind       | Works on                                                  | Cost                                                                                         |
| ---------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `open`     | The next closed slot (up to the item's slot `Max`)        | That slot's `OpenCost` from [Inscription.xml](/docs/data/plugins/inscription/inscription.md) |
| `inscribe` | The first open slot                                       | The entry's first `Cost`                                                                     |
| `empower`  | The slot holding the catalyst's entry. Raises it one tier | The entry's `Cost` for the new tier                                                          |

**Empower with no catalyst** raises the first inscription on the item that has no catalyst (random-only) and is not maxed.

### FailMode

| FailMode   | On failure                                                                    |
| ---------- | ----------------------------------------------------------------------------- |
| `catalyst` | Jewels, catalyst and Zen are lost. The item is safe, no Potential spent       |
| `corrupt`  | Same, and the slot becomes **corrupted forever**                              |
| `destroy`  | The item is lost (with its record) unless the `Protection` item is in the box |

A successful mix spends the Potential. A failed one spends none. The `Protection` item is used up on success and on failure.

### Bind

A bound item cannot be traded, dropped, put in the guild vault or listed on the Market. Its inscriptions only work for the bound character, and only that character can mix it. Binding happens once; a bound item stays bound to the same character.

## Box Rules

* Exactly **one** item with Potential. Everything else must match a `<Source>`.
* At most **one** catalyst. A stack of 2 or more counts as several and is refused. Players split stacks with Ctrl + right click.
* Payment jewels (Chaos, Bless, Soul) come in stacks of exactly 10 in the shipped recipes. They are never catalysts: the chaos window merges equal jewels into one pile, so one Chaos as catalyst next to 10 Chaos as payment would read as 11.
* Every recipe must pay with a **different** set of stacks. The catalyst row is optional for the matcher, so two recipes with the same payment look like the same recipe to the client.
* Catalyst `<Source>` rows use `CountMin="0" CountMax="1" Group="1"`, so the window shows them as one ingredient ("one of these").
* A `Protection` item also needs its own `<Source>` row (`CountMin="0"`), or the box will not match.
* The target row (`TypeMin="0" TypeMax="6684" CountMax="1"`) covers weapons, shields, armor, wings and rings / pendants. Jewel of Chaos (6159) sits inside it; `CountMax="1"` keeps a stack of 10 out.

## Shipped Recipes

| Recipe             | MixID | Box                                     | Zen | Success | On failure             |
| ------------------ | ----- | --------------------------------------- | --- | ------- | ---------------------- |
| Open slot          | 200   | item + 10 Chaos                         | 5M  | 80%     | jewels lost            |
| Inscribe (pick)    | 201   | item + 1 catalyst + 10 Chaos + 10 Bless | 10M | 70%     | jewels lost            |
| Inscribe (random)  | 202   | item + 10 Chaos + 10 Soul               | 5M  | 90%     | jewels lost            |
| Empower            | 203   | item + 1 catalyst + 10 Bless + 10 Soul  | 20M | 50%     | jewels lost            |
| Forbidden Inscribe | 204   | item + 10 Soul                          | 2M  | 50%     | slot corrupted forever |

All use `Requirements Level="10"`, success formula 1, and the usual charm options. Success is capped at 100%. Castle Siege chaos tax is added to the Zen.

Item numbers in `<Source>`: 6159 Chaos, 7181 Bless, 7182 Soul. Catalysts: 7184 Life, 7190 Creation, 7199 Guardian, 7209-7212 Gemstone / Harmony / Lower / Higher Refining Stone, 6687 +0 Soul of Dark Horse, 6708 Condor Flame.

## Important Behavior

* The panel and the real mix run the **same checks**, in this order: one target, at most one catalyst, not bound to someone else, item has a slot rule, a recipe matched, slot available, catalyst / entry fits, tier not maxed, enough Potential. The first failing check is the message the player sees.
* Random inscribe only rolls entries whose first `Cost` fits the Potential left. The panel shows how many could come out.
* Every mix is logged in the ChaosMix log (`[InscriptionMix][Success]` / `[InscriptionMix][Failure]`).
* Recipes are re-added on `/reload plugins`. They disappear when the plugin is off or unlicensed.

## Examples

{% tabs %}
{% tab title="Hardcore empower" %}
Replaces the shipped Empower (203). A failure destroys the item unless the protection item is in the box. Here the protection item is 14,250 (item number 7418), an unused custom jewel slot; it must exist in Item.xml and the client. Note its own `<Source>` row. Add the other catalyst rows from recipe 203 as needed.

```xml
<Recipe MixType="14" MixID="203">
  <Display NameText1="11206" DescText1="11207" Width="-1" Height="-1" Category="7" Result="main"/>
  <Requirements Level="10"/>
  <ZenCost Type="A" Value="30000000"/>
  <SuccessRate FormulaId="1" MaxRate="60"/>
  <Options MixOptionId="1" CharmOptionId="1" ChaosCharmOptionId="1"/>
  <Sources>
    <Source TypeMin="0"    TypeMax="6684" CountMin="1"  CountMax="1" NameText="11210"/>
    <Source TypeMin="7209" TypeMax="7212" CountMin="0"  CountMax="1" Group="1" NameText="11209"/>
    <Source TypeMin="7184" TypeMax="7184" CountMin="0"  CountMax="1" Group="1"/>
    <Source TypeMin="7418" TypeMax="7418" CountMin="0"  CountMax="1"/>
    <Source TypeMin="7181" TypeMax="7181" CountMin="10" CountMax="10"/>
    <Source TypeMin="7182" TypeMax="7182" CountMin="10" CountMax="10"/>
  </Sources>
  <Inscription Kind="empower" FailMode="destroy" Protection="14,250"/>
</Recipe>
```

{% endtab %}

{% tab title="Bound wing inscription" %}
Replaces the shipped random inscribe (202). Limited to the Wings pool; the item binds on success.

```xml
<Recipe MixType="14" MixID="202">
  <Display NameText1="11204" DescText1="11205" Width="-1" Height="-1" Category="7" Result="main"/>
  <Requirements Level="10"/>
  <ZenCost Type="A" Value="3000000"/>
  <SuccessRate FormulaId="1" MaxRate="90"/>
  <Options MixOptionId="1" CharmOptionId="1" ChaosCharmOptionId="1"/>
  <Sources>
    <Source TypeMin="6144" TypeMax="6279" CountMin="1"  CountMax="1" NameText="11210"/>
    <Source TypeMin="6159" TypeMax="6159" CountMin="10" CountMax="10"/>
    <Source TypeMin="7182" TypeMax="7182" CountMin="10" CountMax="10"/>
  </Sources>
  <Inscription Kind="inscribe" Mode="random" Pool="Wings" FailMode="catalyst" Bind="onInscribe"/>
</Recipe>
```

{% endtab %}
{% endtabs %}

## Common Issues

{% hint style="warning" %}
"Add the jewels of one recipe below": the box matches no recipe. Check stack sizes (exactly 10) and that the catalyst is a single jewel.
{% endhint %}

{% hint style="warning" %}
Two recipes act as one: they pay with the same stacks. Give each recipe a different payment.
{% endhint %}

{% hint style="warning" %}
A recipe never shows: it has no `<Inscription>` child, or its `Pool` names a pool that does not exist. Check the GameServer log for `[Inscription]` warnings.
{% endhint %}
