EquipmentEvolutionData
Overview
Section titled “Overview”EquipmentEvolutionData.xml defines equipment evolution entries: upgrade paths, required materials, success rates, and result templates.
Version Support
Section titled “Version Support”| Version | Status |
|---|---|
| v92 | Full |
| v90 | - |
| v86 | - |
This schema uses a 4-level deep nesting structure with composite keys for condition identification.
DSL Support
Section titled “DSL Support”Entity: evolutions (nested format) or evolutionPaths (flat format)
Operations: create, update, delete, upsert, deleteConditions
Quick Recipes
Section titled “Quick Recipes”Create
Section titled “Create”spec: version: "1.0"
evolutions: create: - targetTemplateId: 99000001 notCareBound: false conditions: - targetEnchantStep: 0 awaken: false masterpiece: false params: evolutionProb: 1.0 requiredMoney: 10000 result: resultTemplateId: 99000002 resultEnchantStep: 0 materials: - id: 98523 amount: 1 type: itemUpdate
Section titled “Update”spec: version: "1.0"
evolutions: update: - targetTemplateId: 99000001 changes: notCareBound: true conditions: - targetEnchantStep: 0 awaken: false masterpiece: false params: evolutionProb: 0.95 requiredMoney: 15000Delete Evolution Entry
Section titled “Delete Evolution Entry”spec: version: "1.0"
evolutions: delete: - targetTemplateId: 99000001Delete Specific Condition
Section titled “Delete Specific Condition”spec: version: "1.0"
evolutions: deleteConditions: - targetTemplateId: 99000001 conditions: - targetEnchantStep: 0 awaken: false masterpiece: falseMultiple Conditions with Different Keys
Section titled “Multiple Conditions with Different Keys”spec: version: "1.0"
evolutions: create: - targetTemplateId: 99000001 conditions: # Base evolution (non-awakened, non-masterpiece) - targetEnchantStep: 0 awaken: false masterpiece: false params: evolutionProb: 1.0 requiredMoney: 10000 result: resultTemplateId: 99000002 resultEnchantStep: 0 materials: - id: 98523 amount: 1 type: item
# Masterpiece evolution at +3 - targetEnchantStep: 3 awaken: false masterpiece: true params: evolutionProb: 0.8 requiredMoney: 50000 damageProb: 0.05 result: resultTemplateId: 99000003 resultEnchantStep: 0 materials: - id: 98523 amount: 5 type: item - id: 98524 amount: 10 type: itemFlat path format (evolutionPaths)
Section titled “Flat path format (evolutionPaths)”The evolutionPaths entity provides a flat alternative to the nested evolutions format. Each path entry contains condition key, evolution parameters, result parameters, and materials at one level — no nested params:, result:, or conditions: blocks.
Both formats produce identical XML output and support the same operations.
When to use
Section titled “When to use”Use evolutionPaths when:
- Multiple upgrade paths share materials, probabilities, or awaken/masterpiece values
- Using
$extendsdefinitions to factor out shared attributes - Readability matters more than mirroring the XML structure
Use evolutions when:
- Directly translating from existing XML
- Working with tooling that generates the nested format
Create
Section titled “Create”spec: version: "1.0"
evolutionPaths: create: - targetTemplateId: 99000001 notCareBound: false paths: - targetEnchantStep: 0 awaken: false masterpiece: false evolutionProb: 1.0 requiredMoney: 10000 resultTemplateId: 99000002 resultEnchantStep: 0 materials: - id: 98523 amount: 1 type: itemUpdate
Section titled “Update”spec: version: "1.0"
evolutionPaths: update: - targetTemplateId: 99000001 changes: paths: - targetEnchantStep: 0 awaken: false masterpiece: false evolutionProb: 0.95 requiredMoney: 15000Delete and deleteConditions
Section titled “Delete and deleteConditions”Delete and deleteConditions use the same syntax as the nested format:
evolutionPaths: delete: - targetTemplateId: 99000001
deleteConditions: - targetTemplateId: 99000001 conditions: - targetEnchantStep: 0 awaken: false masterpiece: falseUsing definitions with flat paths
Section titled “Using definitions with flat paths”The flat format works naturally with $extends — shared attributes (materials, probabilities, awaken/masterpiece) are defined once and inherited per path:
spec: version: "1.0"
definitions: basePath: awaken: false masterpiece: false evolutionProb: 1.0 requiredMoney: 10000 materials: - id: 501 amount: 2 type: item
evolutionPaths: create: - targetTemplateId: 10121 paths: - $extends: basePath targetEnchantStep: 9 resultTemplateId: 12265 resultEnchantStep: 0 - $extends: basePath targetEnchantStep: 12 resultTemplateId: 12265 resultEnchantStep: 9Compare this to the equivalent nested format, which requires repeating params:, result:, and materials: blocks for every condition.
Properties reference
Section titled “Properties reference”EquipmentEvolution (Root Element)
Section titled “EquipmentEvolution (Root Element)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
targetTemplateId | int | v92 | Yes | Equipment template ID to evolve (primary key) |
notCareBound | boolean | v92 | No | If true, ignores soulbound status during evolution |
Condition (Composite Key)
Section titled “Condition (Composite Key)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
targetEnchantStep | int | v92 | Yes | Required enchant level for this condition |
awaken | boolean | v92 | Yes | Whether equipment must be awakened |
masterpiece | boolean | v92 | Yes | Whether equipment must be masterpiece |
Evolution Parameters (params)
Section titled “Evolution Parameters (params)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
evolutionProb | decimal | v92 | Yes | Success probability (0.0 to 1.0) |
requiredMoney | int | v92 | Yes | Gold cost for evolution |
damageProb | decimal | v92 | No | Probability of equipment damage on failure |
failRevisionProb | decimal | v92 | No | Probability modifier on failure |
hideProb | boolean | v92 | No | Hide success probability from UI |
Result Parameters (result)
Section titled “Result Parameters (result)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
resultTemplateId | int | v92 | Yes | Equipment template ID after evolution |
resultEnchantStep | int | v92 | Yes | Enchant level after evolution |
Material Entry (materials)
Section titled “Material Entry (materials)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
id | int | v92 | Yes | Material item ID |
amount | int | v92 | Yes | Quantity required |
type | string | v92 | Yes | Material type (typically item) |
Path Entry (paths — flat format)
Section titled “Path Entry (paths — flat format)”Each path entry combines condition key, evolution parameters, result parameters, and materials at one level.
| Property | Type | Since | Required (create) | Description |
|---|---|---|---|---|
targetEnchantStep | int | v92 | Yes | Required enchant level for this condition |
awaken | boolean | v92 | Yes | Whether equipment must be awakened |
masterpiece | boolean | v92 | Yes | Whether equipment must be masterpiece |
evolutionProb | decimal | v92 | Yes | Success probability (0.0 to 1.0) |
requiredMoney | int | v92 | Yes | Gold cost for evolution |
damageProb | decimal | v92 | No | Probability of equipment damage on failure |
failRevisionProb | decimal | v92 | No | Probability modifier on failure |
hideProb | boolean | v92 | No | Hide success probability from UI |
resultTemplateId | int | v92 | Yes | Equipment template ID after evolution |
resultEnchantStep | int | v92 | Yes | Enchant level after evolution |
materials | list[Material] | v92 | Yes | Required materials (max 4) |
XML Structure
Section titled “XML Structure”The XML schema follows a 4-level nesting structure:
EquipmentEvolutionData└── EquipmentEvolution (targetTemplateId, notCareBound?) └── Condition (targetEnchantStep, awaken, masterpiece) ├── EvolutionData (evolutionProb, requiredMoney, damageProb?, failRevisionProb?, hideProb?) ├── ResultData (resultTemplateId, resultEnchantStep) └── MaterialList └── Material (id, amount, type) [max 4]Common Pitfalls
Section titled “Common Pitfalls”-
Composite key identification: Conditions are identified by the combination of
(targetEnchantStep, awaken, masterpiece). Two conditions with the sametargetEnchantStepbut differentawakenormasterpiecevalues are distinct entries. -
Delete operations: Use
deleteto remove entire evolution entries bytargetTemplateId. UsedeleteConditionsto remove specific conditions within an evolution entry using the composite key. -
Material limit: Each condition supports a maximum of 4 materials.
-
Probability values: Use decimal values between 0.0 and 1.0 for probability fields (
evolutionProb,damageProb,failRevisionProb). -
Required vs optional:
params.evolutionProbandparams.requiredMoneyare required for create operations.result.resultTemplateIdandresult.resultEnchantStepare also required. -
Update granularity: Updates target specific conditions by their composite key. You cannot update the composite key itself - delete and recreate instead.