Skip to content

EquipmentInheritanceData

EquipmentInheritanceData.xml defines equipment inheritance tokens: consumable items that transform one equipment item into another while selectively preserving progression attributes such as enchantment level, masterwork status, etchings, and crystals.

VersionStatus
v92Full
v90-
v86-

Entity: equipmentInheritance Operations: create, update, delete, upsert


AttributeTypeSinceDescription
templateIdintv92Equipment template ID referencing the token item in ItemTemplate (primary key)
masterpieceboolv92Preserves masterwork status and random rolls from +3/+6/+9 enchantment
awakenboolv92Preserves special bonuses from +13/+14/+15 enchantment. Requires awakenable="True" on all source and target items
enchantboolv92Preserves current enchantment level (e.g., +15 stays +15)
scrollboolv92Preserves permanent magical etchings applied to equipment
artifactboolv92Preserves equipped bound Dyad Niveot crystals
AttributeTypeSinceDescription
probabilitydecimalv92Success probability as a value from 0.0 to 1.0. Default: 1.0. On failure the token is consumed and the item remains unchanged
equipExpboolv92Preserves equipment proficiency/experience. Default: false
boundboolv92Controls whether the result item stays bound. See bound flag behavior. Default: false
inheritInfoslist[InheritInfo]v92Collection of source-to-target equipment mappings

Defines a mapping from a source equipment template to the resulting template after transformation. The entire collection is replaced during updates.

AttributeTypeSinceDescription
targetTemplateIdintv92Source equipment template ID to inherit from
resultTemplateIdintv92Resulting equipment template ID after transformation

The source item must always be bound to the character to perform inheritance — this is a hardcoded system requirement regardless of flag settings.

The bound flag only controls what happens to the result:

bound valueResult behavior
false (default)Result item becomes unbound — can be traded or transferred
trueResult item stays bound to the same character

These behaviors are hardcoded and not configurable via flags.

Always inherited:

  • Enhancement correction value
  • Accumulated enhancement stones

Never inherited:

  • Unbind status (result becomes unbound by default)
  • Item seal status
  • Bind-on-acquire flag

Source and target items referenced in InheritInfo mappings must satisfy attribute compatibility rules in ItemTemplate.

Mismatches cause server load failure.

ItemTemplate attributeDescription
linkEnchantIdEnchantment data reference
linkPassivityCategoryIdPassivity category reference

These should typically match to avoid gameplay issues:

ItemTemplate attributeDescription
combatItemTypeEquipment type (e.g., EQUIP_WEAPON)
combatItemSubTypeWeapon/armor subtype (e.g., lance)
categoryItem category
rankGear tier
levelRequired level
rareGradeQuality grade
requiredClassClass restriction
linkMaterialEnchantIdEnchanting materials reference
combineOptionValueOption system value

These attributes can differ between source and target — this enables stat upgrades and visual changes:

ItemTemplate attributeDescription
linkEquipmentIdEquipment stats reference (allows actual stat changes)
itemLevelIdItem tier level (allows tier progression)
linkPassivityId valuesSpecific passivities (can change stats)
Passivity countSource and target can have different numbers of passivities
icon, lookInfoIdVisual appearance

If awaken="true" on the token, all items (source and every target) must have awakenable="True" in ItemTemplate. Omitting this causes a misleading PassivityDataSheet validation error at server load. Start with awaken="false" unless awakening support is confirmed on all involved items.


equipmentInheritance:
create:
- templateId: 99000001
masterpiece: true
awaken: false
enchant: true
scroll: false
artifact: false
equipmentInheritance:
create:
- templateId: 99000001
masterpiece: true
awaken: false
enchant: true
scroll: false
artifact: false
probability: 0.5
equipExp: true
bound: false
equipmentInheritance:
create:
- templateId: 99000001
masterpiece: true
awaken: false
enchant: true
scroll: false
artifact: false
inheritInfos:
- targetTemplateId: 200
resultTemplateId: 300
- targetTemplateId: 201
resultTemplateId: 301

Branching inheritance (one source, multiple targets)

Section titled “Branching inheritance (one source, multiple targets)”

Create separate tokens to let players choose between transformation paths:

# Ice path: Sardonal Lance → Frostspar
equipmentInheritance:
create:
- templateId: 900011
masterpiece: true
awaken: false
enchant: true
scroll: true
artifact: true
inheritInfos:
- targetTemplateId: 18685
resultTemplateId: 18634
# Fire path: Sardonal Lance → Emberspar
equipmentInheritance:
create:
- templateId: 900012
masterpiece: true
awaken: false
enchant: true
scroll: true
artifact: true
inheritInfos:
- targetTemplateId: 18685
resultTemplateId: 18642
equipmentInheritance:
update:
- templateId: 99000001
changes:
masterpiece: false
probability: 0.75
equipmentInheritance:
update:
- templateId: 99000001
changes:
inheritInfos:
- targetTemplateId: 500
resultTemplateId: 600

Replaces the entire inheritInfos collection. Previous InheritInfo children are removed.

equipmentInheritance:
delete:
- 99000001
- 99000002
equipmentInheritance:
upsert:
- templateId: 99000001
masterpiece: true
awaken: false
enchant: true
scroll: false
artifact: false
inheritInfos:
- targetTemplateId: 200
resultTemplateId: 300

Creates a new token if templateId 99000001 doesn’t exist, or replaces the existing entry if it does.


<EquipmentInheritanceData>
<Token templateId="99000001" masterpiece="true" awaken="false" enchant="true"
scroll="false" artifact="false" probability="0.5" equipExp="true" bound="false">
<InheritInfo targetTemplateId="200" resultTemplateId="300" />
<InheritInfo targetTemplateId="201" resultTemplateId="301" />
</Token>
<Token templateId="99000002" masterpiece="false" awaken="true" enchant="false"
scroll="true" artifact="true" />
</EquipmentInheritanceData>

Key structure:

  • Token: Identified by templateId attribute
  • InheritInfo: No unique identifier — entire collection is replaced during updates

The templateId in each Token must reference an item in ItemTemplate.xml with combatItemType="EQUIP_INHERITANCE". This combat type triggers the inheritance UI when the item is used on equipment. All vanilla inheritance tokens share these ItemTemplate attributes:

AttributeValue
combatItemTypeEQUIP_INHERITANCE
combatItemSubTypeetc
categoryetc
rareGrade3 (Superior)
level65

Items with other combat types (e.g., NO_COMBAT / combatItemSubType="magical") will not trigger the inheritance system.

Each token also needs a corresponding entry in StrSheet_Item.xml to provide its display name and tooltip text. Without this entry the item appears unnamed in-game.

# 1. Create the token item in ItemTemplate
items:
create:
- id: 99000001
combatItemType: EQUIP_INHERITANCE
combatItemSubType: etc
category: etc
rareGrade: 3
requiredLevel: 65
# 2. Create the display string
strings:
create:
- id: 99000001
string: "Inheritance Token"
toolTip: "Transforms equipment while preserving enchantment and masterwork."
# 3. Create the inheritance mapping
equipmentInheritance:
create:
- templateId: 99000001
masterpiece: true
awaken: false
enchant: true
scroll: false
artifact: false

  • Awakening misconfiguration: Setting awaken="true" without awakenable="True" on all source and target items causes a PassivityDataSheet validation error at server load. This error name is misleading — it does not indicate a passivity count problem.

  • Passivity count mismatch is allowed: Source and target items can have different numbers of passivities. This is verified in production (7.2% of 433 vanilla mappings have mismatched counts).

  • Missing ItemTemplate entry: A Token entry without a corresponding EQUIP_INHERITANCE item in ItemTemplate will have no in-game item to trigger it. Always create the item first.

  • Missing StrSheet_Item entry: A token without a string entry appears unnamed in-game. Always create the string alongside the item.

  • Collection replacement on update: The update operation replaces the entire inheritInfos collection. To preserve existing entries, include them in the update payload.

  • Required boolean fields: All five boolean flags (masterpiece, awaken, enchant, scroll, artifact) are required for create and upsert operations. Omitting any will result in a validation error.

  • Probability default: When probability is omitted, it defaults to 1.0 (100% success). On failure the token is consumed and the item remains unchanged.

  • No upsert for nested elements: Upsert semantics apply only to the root Token element. Individual InheritInfo entries cannot be upserted independently.

  • Misleading error messages: The PassivityDataSheet error and ItemCustomEx Datasheet RenameItem error are often side effects of awakening misconfiguration, not direct passivity or item issues. Always verify linkEnchantId and linkPassivityCategoryId matching and awaken flag configuration first.