SocketItemOption Configuration
This configuration file defines the effects provided by seed spheres inserted into socket items: individual seed effects, set bonuses for specific element sequences in a single item, and global package bonuses that count element types across all equipped socket items.
File Location#
Data/Item/SocketItemOption.xml
Dependencies#
| Depends On | Purpose |
|---|---|
| SocketItemType.xml | Defines which items can have sockets and element restrictions by section |
| ItemOptionRate.xml | SocketOptions table rolls the per-drop socket count |
Related references:
- Item.xml for section and type numbering
- ItemOption.xml and the OptionIndex reference for the standard (non-socket) option enum; socket options use their own enum documented below
Structure Overview#
The file has three sections:
- Options - individual seed sphere effects, keyed by
Index - BonusOptions - per-item set bonuses triggered when a specific element sequence fills the first socket slots in order
- PackageOptions - global bonuses triggered when equipped socket items together contain at least the required count of each element type
Options Section#
Defines the effect of each seed sphere type.
<Options>
<Option Index="0" Type="1" SubIndex="0"
Name="Attack power increase" Rate="20"
Value1="17" Value2="19" Value3="21" Value4="23" Value5="25"
OptionType="3"/>
</Options>
Option Attributes#
| Attribute | Type | Description |
|---|---|---|
Index | int | Seed option ID (see Seed Options). Valid range 0-49. |
Type | int | Element type (1-6). |
SubIndex | int | Sub-index within the element type. Used by seed creation and client display. |
Name | string | Display name (max 31 chars). |
Rate | int | Selection weight used when picking a random option of the given element type. |
Value1-5 | int | Effect value at sphere levels 1-5. |
OptionType | int | Client-side display hint: 1=flat, 2=percent, 3=scaled by character level, 4=scaled by Max HP, 5=scaled by Max MP. Defaults to 1. The server always reads the value from Value1-5 based on sphere level; the actual formula is fixed per option index. |
Element Types#
| Type | Element | Theme |
|---|---|---|
| 1 | Fire | Attack / damage |
| 2 | Water | Defense / block |
| 3 | Ice | Skill / hunt |
| 4 | Wind | Recovery / HP and MP pool |
| 5 | Lightning | Critical / excellent |
| 6 | Earth | Base stats |
Weapons (Sections 0-5, excluding Arrows at 4/7 and Bolts at 4/15) can only roll Fire, Ice, and Lightning seeds. Armor pieces (Sections 6-11) can only roll Water, Wind, and Earth seeds.
Seed Options#
The list below reflects the stock XML. Every entry fires a dedicated stat addition in the server's socket applier; "Formula" describes what the server actually does with Value.
Fire Element (Type 1) - Attack#
| Index | Name | Formula |
|---|---|---|
| 0 | Attack power increase (scales by level) | All damage min/max += CharacterLevel / Value. Lower Value = more damage. |
| 1 | Attack speed increase | PhysiSpeed and MagicSpeed += Value. |
| 2 | Minimum attack power increase | Min physical, min magic, and min curse damage += Value. (Stock XML mislabels this as "Maximum"; the server handler is the min-damage case.) |
| 3 | Maximum attack power increase | Max physical, max magic, and max curse damage += Value. (Stock XML mislabels this as "Minimum"; the server handler is the max-damage case.) |
| 4 | Attack power increase | All damage min and max (Physi, Magic, Curse) += Value. |
| 5 | AG consumption decrease | BPConsumptionRate -= Value. Lowers the AG cost multiplier on skills. |
Water Element (Type 2) - Defense#
| Index | Name | Formula |
|---|---|---|
| 10 | Block rating increase | DefenseSuccessRate += DefenseSuccessRate * Value / 100 (percent multiplier on current defense rate). |
| 11 | Defense increase | Defense += Value. |
| 12 | Shield protection increase | ShieldDamageReduction += Value (percent). |
| 13 | Damage reduction | Socket slot of the damage-reduction table += Value. |
| 14 | Damage reflection | DamageReflect += Value. |
Ice Element (Type 3) - Skill / Hunt#
| Index | Name | Formula |
|---|---|---|
| 16 | Monster attack HP recovery | HuntHP += 100 / Value. Lower Value yields a higher HuntHP percent. On kill, HP restored = MaxHP * HuntHP / 100 + TargetLevel. |
| 17 | Monster attack MP recovery | HuntMP += 100 / Value. Lower Value yields a higher HuntMP percent. On kill, MP restored = MaxMP * HuntMP / 100. |
| 18 | Skill attack increase | SkillDamageBonus += Value. |
| 19 | Attack success rate increase | AttackSuccessRate += Value. |
| 20 | Item durability increase | Weapon and armor durability rate += Value (percent). |
Wind Element (Type 4) - Recovery / Pool#
| Index | Name | Formula |
|---|---|---|
| 21 | HP recovery increase | HPRecovery += Value. |
| 22 | Maximum HP increase | AddLife += MaxLife * Value / 100 (percent of base Max HP). |
| 23 | Maximum MP increase | AddMana += MaxMana * Value / 100 (percent of base Max MP). |
| 24 | MP recovery increase | MPRecovery += Value. |
| 25 | Maximum AG increase | AddBP += Value. |
| 26 | AG recovery increase | BPRecovery += Value. |
Lightning Element (Type 5) - Critical / Excellent#
| Index | Name | Formula |
|---|---|---|
| 29 | Excellent damage increase | ExcellentDamage += Value. |
| 30 | Excellent damage rate increase | ExcellentDamageRate += Value. |
| 31 | Critical damage increase | CriticalDamage += Value. |
| 32 | Critical damage rate increase | CriticalDamageRate += Value. |
Earth Element (Type 6) - Base Stats#
| Index | Name | Formula |
|---|---|---|
| 34 | Strength increase | AddStrength += Value. |
| 35 | Dexterity increase | AddDexterity += Value. |
| 36 | Vitality increase | AddVitality += Value. |
| 37 | Energy increase | AddEnergy += Value. |
Seed Byte Encoding#
Each filled socket slot on an item stores a single byte: Index + Level * 50, where Index is the seed option ID above and Level is the sphere level (0-4, representing spheres 1-5). Sentinel values are 0xFE for an empty slot and 0xFF for a non-existent slot.
BonusOptions Section#
Grants a bonus to an item when its first N socket slots contain a specific element sequence.
<BonusOptions>
<BonusOption Index="0" MinItemSection="0" MaxItemSection="4"
Name="Attack power bonus" Value="11"
ReqOptionType1="1" ReqOptionType2="5" ReqOptionType3="3"
ReqOptionType4="0" ReqOptionType5="0"/>
</BonusOptions>
BonusOption Attributes#
| Attribute | Type | Description |
|---|---|---|
Index | int | Bonus option ID (0-49). |
MinItemSection | int | Minimum item section the bonus applies to. |
MaxItemSection | int | Maximum item section the bonus applies to. |
Name | string | Display name (max 31 chars). |
Value | int | Effect value. |
ReqOptionType1-5 | int | Required element type at each socket slot in order. 0 means the slot is not checked. The check is positional: slot 1 must hold an element of ReqOptionType1, slot 2 of ReqOptionType2, and so on. If a required slot is empty or holds the wrong element, the bonus does not trigger. |
Bonus Types (stock)#
| Index | Sections | Name | Required Elements | Effect |
|---|---|---|---|---|
| 0 | 0-4 (weapons) | Attack power bonus | Fire(1), Lightning(5), Ice(3) | All damage min/max += Value. |
| 1 | 0-4 (weapons) | Skill damage bonus | Lightning(5), Ice(3), Fire(1) | SkillDamageBonus += Value. |
| 2 | 5 (staffs) | Magic power bonus | Fire(1), Lightning(5), Ice(3) | Physical and magical damage min/max += Value. |
| 3 | 5 (staffs) | Skill damage bonus | Lightning(5), Ice(3), Fire(1) | SkillDamageBonus += Value. |
| 4 | 6-12 (armor) | Defense bonus | Water(2), Earth(6), Wind(4) | Defense += Value. |
| 5 | 6-12 (armor) | Max HP bonus | Earth(6), Wind(4), Water(2) | AddLife += Value. |
Each equipped socket item is evaluated independently and only the first matching bonus is applied to that item.
PackageOptions Section#
Grants a global bonus when the character's equipped socket items together contain at least the required number of seeds of each element type.
<PackageOptions>
<PackageOption Index="0" Name="Double damage rate" Value="3"
ReqOptionTypeCount1="1" ReqOptionTypeCount2="1"
ReqOptionTypeCount3="1" ReqOptionTypeCount4="1"
ReqOptionTypeCount5="1" ReqOptionTypeCount6="0"/>
</PackageOptions>
PackageOption Attributes#
| Attribute | Type | Description |
|---|---|---|
Index | int | Package option ID (0-49). |
Name | string | Display name (max 31 chars). |
Value | int | Effect value. |
ReqOptionTypeCount1-6 | int | Minimum required count per element type (1=Fire, 2=Water, 3=Ice, 4=Wind, 5=Lightning, 6=Earth) summed across all equipped socket items. The check is "at least this many"; having more seeds of a type than required still triggers the bonus. |
Package Options (stock)#
| Index | Name | Required Counts (Fire / Water / Ice / Wind / Lightning / Earth) | Effect |
|---|---|---|---|
| 0 | Double damage rate | 1 / 1 / 1 / 1 / 1 / 0 | DoubleDamageRate += Value (stock 3). |
| 1 | Ignore defense rate | 1 / 1 / 3 / 1 / 1 / 0 | IgnoreDefenseRate += Value (stock 1). |
Examples#
<!-- Attack power increase scaled by level - sphere level 5 uses Value5=25 -->
<Option Index="0" Type="1" SubIndex="0"
Name="Attack power increase" Rate="20"
Value1="17" Value2="19" Value3="21" Value4="23" Value5="25"
OptionType="3"/>
At character level 400 with sphere level 5, all damage min/max gain 400 / 25 = 16. Lower ValueN increases the per-level bonus.
<!-- Weapon with slot1=Fire, slot2=Lightning, slot3=Ice grants +11 Attack -->
<BonusOption Index="0" MinItemSection="0" MaxItemSection="4"
Name="Attack power bonus" Value="11"
ReqOptionType1="1" ReqOptionType2="5" ReqOptionType3="3"
ReqOptionType4="0" ReqOptionType5="0"/>
The three slots must hold seeds of these element types in this order. Other elements at those slots break the bonus.
<!-- At least one seed of each element except Earth gives +3% double damage rate -->
<PackageOption Index="0" Name="Double damage rate" Value="3"
ReqOptionTypeCount1="1" ReqOptionTypeCount2="1"
ReqOptionTypeCount3="1" ReqOptionTypeCount4="1"
ReqOptionTypeCount5="1" ReqOptionTypeCount6="0"/>
Seeds are counted across all equipped socket items. Extra copies above the requirement still satisfy the check.