Skip to content

EquipmentEvolutionData

EquipmentEvolutionData.xml defines equipment evolution entries: upgrade paths, required materials, success rates, and result templates.

VersionStatus
v92Full
v90-
v86-

This schema uses a 4-level deep nesting structure with composite keys for condition identification.


Entity: evolutions (nested format) or evolutionPaths (flat format) Operations: create, update, delete, upsert, deleteConditions


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: item
spec:
version: "1.0"
evolutions:
update:
- targetTemplateId: 99000001
changes:
notCareBound: true
conditions:
- targetEnchantStep: 0
awaken: false
masterpiece: false
params:
evolutionProb: 0.95
requiredMoney: 15000
spec:
version: "1.0"
evolutions:
delete:
- targetTemplateId: 99000001
spec:
version: "1.0"
evolutions:
deleteConditions:
- targetTemplateId: 99000001
conditions:
- targetEnchantStep: 0
awaken: false
masterpiece: false
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: item

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.

Use evolutionPaths when:

  • Multiple upgrade paths share materials, probabilities, or awaken/masterpiece values
  • Using $extends definitions 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
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: item
spec:
version: "1.0"
evolutionPaths:
update:
- targetTemplateId: 99000001
changes:
paths:
- targetEnchantStep: 0
awaken: false
masterpiece: false
evolutionProb: 0.95
requiredMoney: 15000

Delete and deleteConditions use the same syntax as the nested format:

evolutionPaths:
delete:
- targetTemplateId: 99000001
deleteConditions:
- targetTemplateId: 99000001
conditions:
- targetEnchantStep: 0
awaken: false
masterpiece: false

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: 9

Compare this to the equivalent nested format, which requires repeating params:, result:, and materials: blocks for every condition.


PropertyTypeSinceRequiredDescription
targetTemplateIdintv92YesEquipment template ID to evolve (primary key)
notCareBoundbooleanv92NoIf true, ignores soulbound status during evolution
PropertyTypeSinceRequiredDescription
targetEnchantStepintv92YesRequired enchant level for this condition
awakenbooleanv92YesWhether equipment must be awakened
masterpiecebooleanv92YesWhether equipment must be masterpiece
PropertyTypeSinceRequiredDescription
evolutionProbdecimalv92YesSuccess probability (0.0 to 1.0)
requiredMoneyintv92YesGold cost for evolution
damageProbdecimalv92NoProbability of equipment damage on failure
failRevisionProbdecimalv92NoProbability modifier on failure
hideProbbooleanv92NoHide success probability from UI
PropertyTypeSinceRequiredDescription
resultTemplateIdintv92YesEquipment template ID after evolution
resultEnchantStepintv92YesEnchant level after evolution
PropertyTypeSinceRequiredDescription
idintv92YesMaterial item ID
amountintv92YesQuantity required
typestringv92YesMaterial type (typically item)

Each path entry combines condition key, evolution parameters, result parameters, and materials at one level.

PropertyTypeSinceRequired (create)Description
targetEnchantStepintv92YesRequired enchant level for this condition
awakenbooleanv92YesWhether equipment must be awakened
masterpiecebooleanv92YesWhether equipment must be masterpiece
evolutionProbdecimalv92YesSuccess probability (0.0 to 1.0)
requiredMoneyintv92YesGold cost for evolution
damageProbdecimalv92NoProbability of equipment damage on failure
failRevisionProbdecimalv92NoProbability modifier on failure
hideProbbooleanv92NoHide success probability from UI
resultTemplateIdintv92YesEquipment template ID after evolution
resultEnchantStepintv92YesEnchant level after evolution
materialslist[Material]v92YesRequired materials (max 4)

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]

  • Composite key identification: Conditions are identified by the combination of (targetEnchantStep, awaken, masterpiece). Two conditions with the same targetEnchantStep but different awaken or masterpiece values are distinct entries.

  • Delete operations: Use delete to remove entire evolution entries by targetTemplateId. Use deleteConditions to 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.evolutionProb and params.requiredMoney are required for create operations. result.resultTemplateId and result.resultEnchantStep are also required.

  • Update granularity: Updates target specific conditions by their composite key. You cannot update the composite key itself - delete and recreate instead.