> 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/pools.md).

# Pools.xml

Pools.xml - the inscriptions - pools per item kind, entry archetypes (Amplify, Convert, Defiled, Alter), costs, tiers, catalysts, weights and class filters

Every inscription a player can get. Inscriptions are grouped in **pools**; a pool covers a range of items (weapons, shields, armor, wings, jewelry). Each `<Entry>` is one inscription with its effect, Potential cost per tier, catalyst and roll weight. See the [overview](/docs/data/plugins/inscription.md) for how the system works.

## File Location

```
Data/Plugins/Inscription/Pools.xml
```

## Dependencies

| Depends On                                                        | Purpose                                                                 |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [OptionIndex Reference](/docs/data/item/optionindex-reference.md) | `OptionIndex` for Amplify / Convert / Defiled                           |
| [Skill.txt](/docs/data/skill.md)                                  | `Skill` for Alter entries (CustomSkills ids work too)                   |
| [Effect.xml](/docs/data/effect.md)                                | `Effect` for Rider entries                                              |
| [Inscription.xml](/docs/data/plugins/inscription/inscription.md)  | Which items get Potential at all, and slot `OpenCost`                   |
| [Recipes.xml](/docs/data/plugins/inscription/recipes.md)          | Every catalyst must be a `<Source>` of the inscribe and empower recipes |

## Pool

```xml
<Pool Name="Weapon" ItemMin="0" ItemMax="3071">
  <Entry .../>
</Pool>
```

| Attribute | Type              | Default     | Effect                                                                 |
| --------- | ----------------- | ----------- | ---------------------------------------------------------------------- |
| `Name`    | string (15 chars) | `""`        | Pool name. Recipes can limit themselves to one pool by this name       |
| `ItemMin` | int               | 0           | First item number (`Group x 512 + Index`) the pool's entries can go on |
| `ItemMax` | int               | = `ItemMin` | Last item number                                                       |

Shipped pools: Weapon (0-3071), Shield (3072-3583), Armor (3584-6143), Wings (6144-6279), Jewelry (6656-7167). 109 entries in total.

## Entry

```xml
<Entry Id="1" Name="Might" Desc="Damage +%d%%" Archetype="Amplify" OptionIndex="125"
       Magnitude="3,4,5" Cost="15,8,8" Weight="100" Catalyst="14,16"/>
```

### Common attributes

| Attribute       | Type                                                    | Default   | Effect                                                                                                         |
| --------------- | ------------------------------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------- |
| `Id`            | 1-255                                                   | -         | Unique across **all** pools. Saved on items: never reuse or renumber. Out of range or duplicate = skipped      |
| `Name`          | string (31 chars)                                       | `""`      | Tooltip name                                                                                                   |
| `Desc`          | string (95 chars)                                       | `""`      | Tooltip line. `%d` = this tier's Magnitude, `%%` = a percent sign                                              |
| `Archetype`     | `Amplify` / `Utility` / `Convert` / `Defiled` / `Alter` | `Amplify` | What kind of effect (below). `Utility` is the same as `Amplify`. Unknown = `Amplify`                           |
| `Magnitude`     | list (max 8)                                            | 0         | Strength per tier. A short list repeats its last value                                                         |
| `Cost`          | list (max 8)                                            | 0         | Potential spent. First number = inscribe, then one per Empower. **The count of numbers = the number of tiers** |
| `Weight`        | int                                                     | 100       | Chance weight in random recipes. 0 = never rolled (can still be picked with its catalyst)                      |
| `Catalyst`      | `"Group,Index"` or `"Group,Index,Level"`                | none      | Jewel that picks this entry in a "choose" recipe and empowers it. None = random only                           |
| `Class`         | class list                                              | everyone  | Who can pick or roll it: `DW,DK,FE,MG,DL,SU,RF`. The effect works for whoever wears the item                   |
| `IncompatGroup` | string                                                  | `""`      | Entries with the same group cannot sit on the same item                                                        |

If `Cost` is missing, the tier count is the length of `Magnitude` (and every step is free).

### Amplify

Flat bonus from the item option pool.

| Attribute     | Type | Default | Effect                       |
| ------------- | ---- | ------- | ---------------------------- |
| `OptionIndex` | int  | 0       | Option id. Bonus = Magnitude |

Useful ids: 80 physical damage, 81 wizardry damage, 82 defense rate, 83 defense, 84 critical rate %, 85 life regen % per 5 s, 86 zen %, 87 defense rate %, 88 reflect %, 89 damage decrease %, 90 mana %, 91 life %, 92 excellent rate %, 94 physical damage %, 96 wizardry damage %, 97 attack speed, 98 life per kill %, 99 mana per kill %, 102 ignore defense %, 109 full reflect chance %, 110 full heal when hit chance %, 115 curse damage %, 116 double damage %, 117 experience %, 119 HP, 120 mana, 123 all damage, 125 all damage %, 126 defense + level / value, 127 defense %, 130 attack rate %, 132 critical damage, 133 excellent damage, 134 skill damage, 136-140 STR AGI VIT ENE CMD, 141 defense % with a shield, 157 max SD. Full list: [OptionIndex Reference](/docs/data/item/optionindex-reference.md).

### Convert

A % of one **base** stat becomes an option bonus.

| Attribute     | Type                                  | Default | Effect                                                             |
| ------------- | ------------------------------------- | ------- | ------------------------------------------------------------------ |
| `From`        | `STR` / `AGI` / `VIT` / `ENE` / `CMD` | `STR`   | Source stat. Only the points the character added, not item bonuses |
| `OptionIndex` | int                                   | 0       | Option that receives the bonus                                     |

Bonus = base stat x Magnitude / 100. Example: Mindblade, 5% of Energy as damage.

### Defiled

Grows with corrupted slots.

| Attribute     | Type | Default | Effect                                   |
| ------------- | ---- | ------- | ---------------------------------------- |
| `OptionIndex` | int  | 0       | Option that receives the bonus           |
| `MaxStacks`   | int  | 0       | Most corrupted slots counted. 0 = no cap |

Bonus = Magnitude x every corrupted slot on **all** worn items. Slots only get corrupted by recipes with `FailMode="corrupt"` (Forbidden Inscribe).

### Alter

Changes one skill. Needs a `Verb`; an Alter entry without a valid `Verb` is skipped.

| Attribute | Type                                       | Default | Effect                                                           |
| --------- | ------------------------------------------ | ------- | ---------------------------------------------------------------- |
| `Skill`   | skill id                                   | 0       | The skill. Master tree upgrades of that skill count as the skill |
| `Verb`    | `Overload` / `Hasten` / `Rider` / `Enable` | -       | What it does                                                     |

| Verb       | Effect                                                                                                                                                 | Extra attributes                                                                        |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| `Overload` | Skill damage = Magnitude % (130 = +30%). Several on one character: the highest counts                                                                  | -                                                                                       |
| `Hasten`   | Skill is Magnitude % faster. Several: the highest counts                                                                                               | `Target` = `cast` (attack-speed delay, default), `cooldown` (Skill.txt delay) or `both` |
| `Rider`    | Each hit may apply an existing effect to the target. Every rider applies                                                                               | see below                                                                               |
| `Enable`   | The skill is usable while the item is worn, and removed when it is taken off. The class must be allowed to use the skill. Never saved to the character | -                                                                                       |

Rider attributes:

| Attribute            | Type     | Default | Effect                                                                                                                       |
| -------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `Effect`             | int      | 0       | Effect number                                                                                                                |
| `Chance`             | 0-100    | 100     | % chance per hit                                                                                                             |
| `Duration`           | int      | 5       | Seconds                                                                                                                      |
| `Resist`             | -1 / 0-6 | -1      | -1 = no resist roll. 0-6 = the target rolls that resistance (0 ice, 1 poison, 2 lightning, 3 fire, 4 earth, 5 wind, 6 water) |
| `RiderOnBoss`        | 0/1      | 0       | 0 = never on boss monsters                                                                                                   |
| `Value1` .. `Value4` | int      | 0       | Effect values. `-1` = the attacker, `-2` = this tier's Magnitude                                                             |

Known working effects: 55 Poison (`Value1="-1" Value2="2" Value3="-2"` = Magnitude % of current life every 2 s), 56 Ice (slow; a monster also attacks slower), 61 Stun (no values), 73 Blind / 76 Lesser Damage / 77 Lesser Defense (`Value1="-2"` = Magnitude %).

## Catalyst Rules

* Exactly one catalyst per mix. A stack of 2+ counts as several catalysts and is refused.
* The item in the box picks the pool, so two pools may share a catalyst (Jewel of Life = Might on a weapon, Vigor on armor).
* Inside one pool, a catalyst names **one entry per class**. The same jewel can mean a different skill for each class (Lower Refining Stone = Twisting Slash for a Dark Knight, Evil Spirit for a Dark Wizard). Two entries in one pool with the same catalyst for the same class: the second one can never be picked (logged at load).
* A catalyst with a level (`"13,31,0"`) beats a same-item catalyst without a level.
* Never use Jewel of Chaos, Bless or Soul as a catalyst: they are the recipes' payment.
* Every catalyst must also be a `<Source>` in Recipes.xml, have a real source in game (drop, bag, mix), and sit outside the recipe target row (0-6684), or the chaos window reads it as the item to inscribe.

Shipped catalysts: 14,16 Life, 14,22 Creation, 14,31 Guardian, 14,41 Gemstone, 14,42 Harmony, 14,43 Lower Refining Stone, 14,44 Higher Refining Stone, 13,31 +0 Soul of Dark Horse, 13,52 Condor Flame.

| Jewel                       | Weapon                | Shield                         | Armor                        | Wings                         | Ring / Pendant              |
| --------------------------- | --------------------- | ------------------------------ | ---------------------------- | ----------------------------- | --------------------------- |
| Life 14,16                  | Might (damage %)      | Bastion (HP %)                 | Vigor (HP %)                 | Tempest (damage %)            | Lifebloom (regen)           |
| Creation 14,22              | Swiftness (speed)     | Spikes (reflect)               | Wellspring (mana %)          | Zephyr (speed)                | Clarity (mana %)            |
| Guardian 14,31              | Ruin (exc rate)       | Bulwark (defense % w/ shield)  | Bulwark (defense %)          | Vitality (HP %)               | Bloodthirst (life per kill) |
| Gemstone 14,41              | Precision (crit rate) | Parry (block %)                | Evasion (block %)            | Piercing Gale (ignore def)    | Soul Siphon (mana per kill) |
| Harmony 14,42               | Sunder (ignore def)   | Stoneskin (damage taken -)     | Ward (SD)                    | Aegis (damage taken -)        | Prosperity (zen)            |
| Lower Refining 14,43        | class skill 1         | Guard (defense)                | STR / AGI / ENE by class     | Keen Edge (crit rate)         | Keen Eye (crit damage)      |
| Higher Refining 14,44       | class skill 2         | Ward (SD)                      | Titan (vitality)             | Warding (SD)                  | Brilliance (exc damage)     |
| Soul of Dark Horse 13,31 +0 | class skill 3         | Mirror Ward (full reflect)     | Stalwart (defense per level) | Mirror (full reflect)         | Scholar (exp)               |
| Condor Flame 13,52          | class skill 4         | Second Wind (full heal chance) | Resolve (regen)              | Resurgence (full heal chance) | Heartstone (HP %)           |

Class skills on a weapon (Overload 112 / 118 / 124 / 130%):

| Class           | Lower Refining  | Higher Refining | Soul of Dark Horse | Condor Flame |
| --------------- | --------------- | --------------- | ------------------ | ------------ |
| Dark Knight     | Twisting Slash  | Death Stab      | Rageful Blow       | Blood Storm  |
| Dark Wizard     | Evil Spirit     | Inferno         | Ice Storm          | Meteor Storm |
| Fairy Elf       | Multi-Shot      | Triple Shot     | Penetration        | Focus Shot   |
| Magic Gladiator | Flame Strike    | Gigantic Storm  | Power Slash        | Havok Spear  |
| Dark Lord       | Fire Burst      | Chaotic Diseier | Fire Scream        | Wind Soul    |
| Summoner        | Chain Lightning | Lightning Shock | Sahamutt           | Neil         |
| Rage Fighter    | Dragon Roar     | Chain Drive     | Dark Side          | Phoenix Shot |

Soul of Dark Spirit (13,31 +1) is **not** a catalyst; the box refuses it as the wrong catalyst.

## Shipped Balance

Rule of thumb: one inscription at its first tier is worth about one excellent or socket option; the top tier about twice that.

| Kind                              | First tier               | Top tier          | Compared with                  |
| --------------------------------- | ------------------------ | ----------------- | ------------------------------ |
| Damage %                          | 3%                       | 5%                | excellent "+2% damage"         |
| Max HP %                          | 2%                       | 4%                | excellent "+4% HP"             |
| Defense %                         | 2%                       | 4%                | 380 / harmony defense          |
| Damage taken -                    | 2% (shield) / 1% (wings) | 4% / 3%           | excellent "4% damage decrease" |
| Crit / exc / ignore / double rate | 2-3%                     | 4-7%              | excellent "+10% exc rate"      |
| Attack speed                      | +5                       | +10               | excellent "+7"                 |
| Skill Overload                    | +12%                     | +30% on one skill | only the highest counts        |

Entry costs: common stats 15 / 8 / 8, strong rates 20 / 10 / 10, class skills 25 / 10 / 10 / 12, utility 10 / 6 / 6. Most entries have 3 tiers; class skill Overloads have 4.

A weapon holds one skill inscription at most: every Alter entry shares `IncompatGroup="alter"`. Damage-taken reduction is kept to shields and wings on purpose, because excellent and harmony options already stack it.

| Item                             | Potential         | Enough for                                                                              |
| -------------------------------- | ----------------- | --------------------------------------------------------------------------------------- |
| Plain weapon, best roll (100)    | open 10 + 15 + 20 | 2 slots: a maxed Overload (57) + one base stat (15), or 3 base inscriptions + 1 empower |
| Plain armor, best roll (100)     | open 10 + 15      | two entries at top tier                                                                 |
| 380 / harmony (35-60)            |                   | two base inscriptions                                                                   |
| Excellent / set / socket (25-45) |                   | one inscription, maybe one empower                                                      |
| Ring / pendant                   | open 15           | one inscription                                                                         |

## Important Behavior

* **Effects apply while worn**, from every equipped item, if the item is not broken and the character can wear it. A bound item only works for its owner.
* **Effects are read live from this file.** Changing a Magnitude changes every item that carries the entry after reload. Removing an entry makes it dormant on items; putting it back restores it.
* **Random rolls** pick by `Weight` among entries that fit the item's pool, the recipe's pool, the inscriber's class, are not already on the item, do not clash by `IncompatGroup`, and whose first `Cost` fits the Potential left.
* Empower with no catalyst raises the first inscription on the item that has no catalyst and is not maxed.

## Examples

{% tabs %}
{% tab title="Amplify with catalyst" %}

```xml
<Pool Name="Armor" ItemMin="3584" ItemMax="6143">
  <Entry Id="51" Name="Vigor" Desc="Max HP +%d%%" Archetype="Amplify" OptionIndex="91"
         Magnitude="2,3,4" Cost="15,8,8" Weight="100" Catalyst="14,16"/>
</Pool>
```

{% endtab %}

{% tab title="Class skill Overload" %}

```xml
<Entry Id="3" Name="Rite of the Storm" Desc="Twisting Slash deals %d%% damage"
       Archetype="Alter" Verb="Overload" Skill="41"
       Magnitude="112,118,124,130" Cost="25,10,10,12" Weight="10"
       Catalyst="14,43" Class="DK" IncompatGroup="alter"/>
```

{% endtab %}

{% tab title="Poison rider" %}
25% chance per hit to poison for 6 s; Magnitude % of current life every 2 s. Poison resistance can block it.

```xml
<Entry Id="4" Name="Venom Edge" Desc="Twisting Slash may poison: %d%% of life every 2 s"
       Archetype="Alter" Verb="Rider" Skill="41" Effect="55" Chance="25" Duration="6"
       Resist="1" Value1="-1" Value2="2" Value3="-2"
       Magnitude="2,3,4" Cost="20,8,8" Weight="15" Class="DK,MG" IncompatGroup="alter"/>
```

{% endtab %}

{% tab title="Defiled + Convert" %}

```xml
<Entry Id="60" Name="Blood Pact" Desc="Max HP +%d per corrupted slot worn"
       Archetype="Defiled" OptionIndex="119" MaxStacks="0"
       Magnitude="30,45,60" Cost="20,8,8" Weight="15"/>
<Entry Id="6" Name="Mindblade" Desc="%d%% of Energy as Damage"
       Archetype="Convert" From="ENE" OptionIndex="80"
       Magnitude="3,4,5" Cost="25,10,10" Weight="20" Class="MG,DL"/>
```

{% endtab %}
{% endtabs %}

## Common Issues

{% hint style="warning" %}
"Pool '...' entries X and Y share a catalyst for the same class" in the log: entry Y can never be picked. Give it another catalyst, a `Class`, or leave the catalyst out (random only).
{% endhint %}

{% hint style="warning" %}
"This catalyst does nothing on this kind of item": no entry with that catalyst is in a pool that holds the item, or none is for the player's class.
{% endhint %}

{% hint style="warning" %}
"No inscription fits this item" (random): every entry that fits is already on the item, clashes by `IncompatGroup`, has `Weight="0"`, or is for another class.
{% endhint %}

{% hint style="warning" %}
Percent sign missing or text broken in the tooltip: write a percent sign as `%%`. Only `%d` is replaced (by the Magnitude).
{% endhint %}
