SetItemType Configuration
This configuration file defines which items can be set (ancient) items and maps them to their corresponding set bonuses in SetItemOption.xml.
File Location#
Data/Item/SetItemType.xml
Dependencies#
| Depends On | Purpose |
|---|---|
| Item.xml | Item definitions by Category/Index |
| SetItemOption.xml | Set bonus definitions by OptionIndex |
| Depended On By | Purpose |
|---|---|
| ItemOptionRate.xml | SetOptions section determines set tier on drop |
How It Works#
When a player equips items:
- Server checks if the item is a set item. Bits 0-1 of its SetOption byte must be non-zero; only values 1 and 2 select a usable OptionIndex slot.
- Looks up the item by Section/Type in this table.
- Uses bits 0-1 of SetOption to pick the slot: value 1 uses OptionIndex1, value 2 uses OptionIndex2.
- Counts equipped pieces that share the same resolved OptionIndex across all worn slots.
- Applies piece and full set bonuses defined in SetItemOption.xml based on that count.
Structure#
<SetItemTypeList>
<Item Section="7" Type="1" StatType="3"
OptionIndex1="11" OptionIndex2="12"/>
</SetItemTypeList>
Attributes#
| Attribute | Type | Description |
|---|---|---|
Section | int | Item category, matches the Category index in Item.xml |
Type | int | Item type index within that category |
StatType | int | Stat added by the item's tier (NOT a requirement, see below) |
OptionIndex1 | int | First set ID reference into SetItemOption.xml. Selected when SetOption bits 0-1 equal 1. |
OptionIndex2 | int | Second set ID reference. Selected when SetOption bits 0-1 equal 2. 0 means this slot is unused. |
StatType Values#
A raw 0-based stat index selecting which stat receives the tier bonus.
| Value | Stat | Effect |
|---|---|---|
| -1 | None | No stat bonus from the tier (item skipped) |
| 0 | Strength | Adds Strength based on the tier |
| 1 | Dexterity | Adds Agility based on the tier |
| 2 | Energy | Adds Energy based on the tier |
| 3 | Vitality | Adds Vitality (Stamina) based on the tier |
| 4 | Command | Adds Command (Leadership) based on the tier |
Item Index Calculation#
ItemIndex = Section * 512 + Type
Section values match the Category indices in Item.xml: Swords 0, Axes 1, Maces and Scepters 2, Spears 3, Bows and Crossbows 4, Staffs 5, Shields 6, Helms 7, Armors 8, Pants 9, Gloves 10, Boots 11, Wings / Orbs / Spheres 12, Pets / Rings / Pendants / Misc 13, Jewels / Consumables 14, Scrolls 15.
OptionIndex Reference#
OptionIndex values reference set definitions in SetItemOption.xml. The shipped data populates 49 sets. A partial mapping:
| OptionIndex | Set Name | Example Members (Section, Type) |
|---|---|---|
| 1 | Warrior | Morning Star (2,1), Leather Helm (7,5), Ring of Ice (13,8) |
| 2 | Anonymous | Small Shield (6,0), Leather Helm (7,5) via second slot |
| 3 | Hyperion | Bronze Armor (8,0), Bronze Pants (9,0), Bronze Boots (11,0) |
| 4 | Mist | Bronze Helm (7,0) |
| 5 | Eplete | Plate Shield (6,9), Pendant of Lighting (13,12) |
| 11 | Hyon | Lighting Sword (0,14), Dragon Helm (7,1), Dragon Armor (8,1) |
| 12 | Vicious | Dragon Helm (7,1) via second slot, Dragon Armor (8,1) via second slot |
The full name list (Warrior, Anonymous, Hyperion, Mist, Eplete, Berserker, Garuda, Cloud, Kantata, Rave, Hyon, Vicious, Apollo, Barnake, Evis, Sylion, Heras, Minet, Anubis, Isis, Ceto, Drake, Gaia, Fase, Odin, Elvian, Argo, Karis, Gywen, Aruan, Gaion, Muren, Agnis, Broy, Chrono, Sedemen, Vega, Chamer, Moros, Dione, Hades, Ophion, Meter, Hegaton, Castol, Taros, Nemesis, Amis, Trite) is declared in SetItemOption.xml.
Examples#
<!-- Dragon Helm (Section 7, Type 1) belongs to Hyon set (11) and Vicious set (12) -->
<Item Section="7" Type="1" StatType="3" OptionIndex1="11" OptionIndex2="12"/>
- StatType=3: Gains +5 Vitality (Stamina) per tier level
- Can contribute to either Hyon or Vicious set bonuses
<!-- Lighting Sword (Section 0, Type 14) belongs to Hyon set -->
<Item Section="0" Type="14" StatType="0" OptionIndex1="11" OptionIndex2="0"/>
- StatType=0: Gains +5 Strength per tier level (0 is Strength, not "none"; use -1 for no bonus)
- OptionIndex2=0 means only the first slot is usable, so the item contributes only to the Hyon set
<!-- Ring of Ice (Section 13, Type 8) belongs to Warrior set -->
<Item Section="13" Type="8" StatType="1" OptionIndex1="1" OptionIndex2="0"/>
- StatType=1: Gains +5 Agility (Dexterity) per tier level
- Contributes to Warrior set