EquipmentInheritanceData
Overview
Section titled “Overview”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.
Version support
Section titled “Version support”| Version | Status |
|---|---|
| v92 | Full |
| v90 | - |
| v86 | - |
DSL support
Section titled “DSL support”Entity: equipmentInheritance
Operations: create, update, delete, upsert
Required attributes
Section titled “Required attributes”Token (root element)
Section titled “Token (root element)”| Attribute | Type | Since | Description |
|---|---|---|---|
templateId | int | v92 | Equipment template ID referencing the token item in ItemTemplate (primary key) |
masterpiece | bool | v92 | Preserves masterwork status and random rolls from +3/+6/+9 enchantment |
awaken | bool | v92 | Preserves special bonuses from +13/+14/+15 enchantment. Requires awakenable="True" on all source and target items |
enchant | bool | v92 | Preserves current enchantment level (e.g., +15 stays +15) |
scroll | bool | v92 | Preserves permanent magical etchings applied to equipment |
artifact | bool | v92 | Preserves equipped bound Dyad Niveot crystals |
Optional attributes
Section titled “Optional attributes”| Attribute | Type | Since | Description |
|---|---|---|---|
probability | decimal | v92 | Success probability as a value from 0.0 to 1.0. Default: 1.0. On failure the token is consumed and the item remains unchanged |
equipExp | bool | v92 | Preserves equipment proficiency/experience. Default: false |
bound | bool | v92 | Controls whether the result item stays bound. See bound flag behavior. Default: false |
inheritInfos | list[InheritInfo] | v92 | Collection of source-to-target equipment mappings |
InheritInfo (nested)
Section titled “InheritInfo (nested)”Defines a mapping from a source equipment template to the resulting template after transformation. The entire collection is replaced during updates.
| Attribute | Type | Since | Description |
|---|---|---|---|
targetTemplateId | int | v92 | Source equipment template ID to inherit from |
resultTemplateId | int | v92 | Resulting equipment template ID after transformation |
Bound flag behavior
Section titled “Bound flag behavior”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 value | Result behavior |
|---|---|
false (default) | Result item becomes unbound — can be traded or transferred |
true | Result item stays bound to the same character |
Default system behaviors
Section titled “Default system behaviors”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
Compatibility requirements
Section titled “Compatibility requirements”Source and target items referenced in InheritInfo mappings must satisfy attribute compatibility rules in ItemTemplate.
Must match
Section titled “Must match”Mismatches cause server load failure.
| ItemTemplate attribute | Description |
|---|---|
linkEnchantId | Enchantment data reference |
linkPassivityCategoryId | Passivity category reference |
Should match
Section titled “Should match”These should typically match to avoid gameplay issues:
| ItemTemplate attribute | Description |
|---|---|
combatItemType | Equipment type (e.g., EQUIP_WEAPON) |
combatItemSubType | Weapon/armor subtype (e.g., lance) |
category | Item category |
rank | Gear tier |
level | Required level |
rareGrade | Quality grade |
requiredClass | Class restriction |
linkMaterialEnchantId | Enchanting materials reference |
combineOptionValue | Option system value |
Can differ
Section titled “Can differ”These attributes can differ between source and target — this enables stat upgrades and visual changes:
| ItemTemplate attribute | Description |
|---|---|
linkEquipmentId | Equipment stats reference (allows actual stat changes) |
itemLevelId | Item tier level (allows tier progression) |
linkPassivityId values | Specific passivities (can change stats) |
| Passivity count | Source and target can have different numbers of passivities |
icon, lookInfoId | Visual appearance |
Awaken flag constraint
Section titled “Awaken flag constraint”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.
DSL Examples
Section titled “DSL Examples”Create a token with required fields
Section titled “Create a token with required fields”equipmentInheritance: create: - templateId: 99000001 masterpiece: true awaken: false enchant: true scroll: false artifact: falseCreate with optional fields
Section titled “Create with optional fields”equipmentInheritance: create: - templateId: 99000001 masterpiece: true awaken: false enchant: true scroll: false artifact: false probability: 0.5 equipExp: true bound: falseCreate with inherit infos
Section titled “Create with inherit infos”equipmentInheritance: create: - templateId: 99000001 masterpiece: true awaken: false enchant: true scroll: false artifact: false inheritInfos: - targetTemplateId: 200 resultTemplateId: 300 - targetTemplateId: 201 resultTemplateId: 301Branching 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 → FrostsparequipmentInheritance: create: - templateId: 900011 masterpiece: true awaken: false enchant: true scroll: true artifact: true inheritInfos: - targetTemplateId: 18685 resultTemplateId: 18634
# Fire path: Sardonal Lance → EmbersparequipmentInheritance: create: - templateId: 900012 masterpiece: true awaken: false enchant: true scroll: true artifact: true inheritInfos: - targetTemplateId: 18685 resultTemplateId: 18642Update attributes
Section titled “Update attributes”equipmentInheritance: update: - templateId: 99000001 changes: masterpiece: false probability: 0.75Update inherit infos (replace)
Section titled “Update inherit infos (replace)”equipmentInheritance: update: - templateId: 99000001 changes: inheritInfos: - targetTemplateId: 500 resultTemplateId: 600Replaces the entire inheritInfos collection. Previous InheritInfo children are removed.
Delete
Section titled “Delete”equipmentInheritance: delete: - 99000001 - 99000002Upsert (create or replace)
Section titled “Upsert (create or replace)”equipmentInheritance: upsert: - templateId: 99000001 masterpiece: true awaken: false enchant: true scroll: false artifact: false inheritInfos: - targetTemplateId: 200 resultTemplateId: 300Creates a new token if templateId 99000001 doesn’t exist, or replaces the existing entry if it does.
XML structure
Section titled “XML structure”<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 bytemplateIdattributeInheritInfo: No unique identifier — entire collection is replaced during updates
ItemTemplate requirement
Section titled “ItemTemplate requirement”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:
| Attribute | Value |
|---|---|
combatItemType | EQUIP_INHERITANCE |
combatItemSubType | etc |
category | etc |
rareGrade | 3 (Superior) |
level | 65 |
Items with other combat types (e.g., NO_COMBAT / combatItemSubType="magical") will not trigger the inheritance system.
StrSheet_Item requirement
Section titled “StrSheet_Item requirement”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.
Complete example: item, string, and token
Section titled “Complete example: item, string, and token”# 1. Create the token item in ItemTemplateitems: create: - id: 99000001 combatItemType: EQUIP_INHERITANCE combatItemSubType: etc category: etc rareGrade: 3 requiredLevel: 65
# 2. Create the display stringstrings: create: - id: 99000001 string: "Inheritance Token" toolTip: "Transforms equipment while preserving enchantment and masterwork."
# 3. Create the inheritance mappingequipmentInheritance: create: - templateId: 99000001 masterpiece: true awaken: false enchant: true scroll: false artifact: falseCommon pitfalls
Section titled “Common pitfalls”-
Awakening misconfiguration: Setting
awaken="true"withoutawakenable="True"on all source and target items causes aPassivityDataSheetvalidation 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_INHERITANCEitem 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
updateoperation replaces the entireinheritInfoscollection. To preserve existing entries, include them in the update payload. -
Required boolean fields: All five boolean flags (
masterpiece,awaken,enchant,scroll,artifact) are required forcreateandupsertoperations. Omitting any will result in a validation error. -
Probability default: When
probabilityis omitted, it defaults to1.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
Tokenelement. IndividualInheritInfoentries cannot be upserted independently. -
Misleading error messages: The
PassivityDataSheeterror andItemCustomEx Datasheet RenameItemerror are often side effects of awakening misconfiguration, not direct passivity or item issues. Always verifylinkEnchantIdandlinkPassivityCategoryIdmatching and awaken flag configuration first.