Skip to content

EnchantData

EnchantData.xml defines global enchantment configuration: a singleton entity controlling equipment enchantment success rates, required materials, awakening data, and decomposition rewards.

This schema is a singleton with EntityId = 1, representing the game’s global enchantment system configuration. It uses a 4-level deep nesting structure for material requirements organized by item type, rank, enchant step, and rarity.

VersionStatus
v92Full
v90-
v86-

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


Create the global enchantment configuration with all sections:

spec:
version: "1.0"
schema: v92
enchantDatas:
create:
- awakenMaxCount: 3
masterpieceMaxCount: 2
normalMaxCount: 12
enchantRates:
- combatItemType: EquipWeapon
rank: 1
enchantStep: 0
enchantProb: 1.0
zeroProb: 0.0
materialCumulationRate: 0
enchantStepOnFail: 0
- combatItemType: EquipWeapon
rank: 1
enchantStep: 1
enchantProb: 0.95
zeroProb: 0.05
materialCumulationRate: 10
enchantStepOnFail: 0
sameItemEnchantRates:
- combatItemType: EquipWeapon
rank: 1
enchantStep: 0
enchantProb: 1.0
zeroProb: 0
materialData:
- combatItemType: EquipWeapon
rank: 1
enchantStep: 0
materialsByRarity:
- rareGrade: 0
materialCount: 2
scrollCount: 1
scrollId: 9001
- rareGrade: 1
materialCount: 3
scrollCount: 1
scrollId: 9002
successRatings:
- step: 0
common: 100
good: 200
- step: 1
common: 110
good: 220
decompositions:
- combatItemType: EquipWeapon
rank: 1
rareGrade: 0
baseCost: 1000
resultItemTemplateId: 50001
resultItemAmount: 5
awakens:
- materialCount: 10
materialCumulationRate: 100
scrollCount: 1
scrollId: 9101
- materialCount: 20
materialCumulationRate: 200
scrollCount: 2
- materialCount: 30
materialCumulationRate: 300
scrollCount: 3
- materialCount: 40
materialCumulationRate: 400
scrollCount: 4
spec:
version: "1.0"
schema: v92
enchantDatas:
create:
- awakenMaxCount: 3
masterpieceMaxCount: 2
normalMaxCount: 12

Modify root attributes and replace collections:

spec:
version: "1.0"
schema: v92
enchantDatas:
update:
- changes:
awakenMaxCount: 5
normalMaxCount: 15
enchantRates:
- combatItemType: EquipArmorBody
rank: 2
enchantStep: 1
enchantProb: 0.8
zeroProb: 0.2
materialCumulationRate: 5
enchantStepOnFail: 0

Create if not exists, update if exists:

spec:
version: "1.0"
schema: v92
enchantDatas:
upsert:
- awakenMaxCount: 4
masterpieceMaxCount: 3
normalMaxCount: 10

Remove all data (empty array for singleton):

spec:
version: "1.0"
schema: v92
enchantDatas:
delete: []

PropertyTypeSinceRequiredDescription
awakenMaxCountintv92YesMaximum awakening level (typically 3 or 4)
masterpieceMaxCountintv92YesMaximum masterpiece enchantment level
normalMaxCountintv92YesMaximum normal enchantment level

Container element: EnchantRate Child element: ItemEnchant (repeating)

Defines standard enchantment success rates by item type, rank, and enchant step.

PropertyTypeSinceRequiredDescription
combatItemTypestringv92YesCombat item type (see CombatItemType enum)
rankintv92YesItem rank/tier
enchantStepintv92YesCurrent enchantment level
enchantProbdecimalv92YesSuccess probability (0.0 to 1.0)
zeroProbdecimalv92YesProbability of dropping to enchant level 0 on failure
materialCumulationRateintv92YesMaterial accumulation rate on failure
enchantStepOnFailintv92YesEnchant level to drop to on failure

Container element: SameItemEnchantRate Child element: ItemEnchant (repeating)

Defines success rates when using the same item as enchantment material (alternative enchantment method).

PropertyTypeSinceRequiredDescription
combatItemTypestringv92YesCombat item type (see CombatItemType enum)
rankintv92YesItem rank/tier
enchantStepintv92YesCurrent enchantment level
enchantProbdecimalv92YesSuccess probability (0.0 to 1.0)
zeroProbdecimal or intv92YesProbability of dropping to enchant level 0 on failure

Container element: MaterialData Nested structure: EnchantMaterialMaterialByRarity

Defines required materials for enchantment organized by item type, rank, enchant step, and rarity.

PropertyTypeSinceRequiredDescription
combatItemTypestringv92YesCombat item type (see CombatItemType enum)
rankintv92YesItem rank/tier
enchantStepintv92YesTarget enchantment level

MaterialByRarity (nested within EnchantMaterial)

Section titled “MaterialByRarity (nested within EnchantMaterial)”

Array property: materialsByRarity

PropertyTypeSinceRequiredDescription
rareGradeintv92YesItem rarity grade (0=Common, 1=Uncommon, 2=Rare, etc.)
materialCountintv92YesNumber of enchantment stones required
scrollCountintv92YesNumber of enchantment scrolls required
scrollIdintv92NoItem template ID for the required scroll

Container element: EnchantSuccessRating Child element: Rating (repeating)

Defines rating/score bonuses awarded based on enchantment success at different steps.

Array property: successRatings

PropertyTypeSinceRequiredDescription
stepintv92YesEnchantment step (level)
commonintv92YesRating points for common success
goodintv92YesRating points for good success

Container element: EnchantDecompositionData Child element: EnchantDecomposition (repeating)

Defines rewards for decomposing enchanted items.

Array property: decompositions

PropertyTypeSinceRequiredDescription
combatItemTypestringv92YesCombat item type (see CombatItemType enum)
rankintv92YesItem rank/tier
rareGradeintv92YesItem rarity grade (0=Common, 1=Uncommon, etc.)
baseCostintv92YesBase gold cost for decomposition
resultItemTemplateIdintv92YesItem template ID of the decomposition result
resultItemAmountintv92YesQuantity of result items received

Root-level element: AwakenData (max 4 elements, representing awakening levels 1-4)

Defines materials and parameters for each awakening level.

Array property: awakens Maximum count: 4

PropertyTypeSinceRequiredDescription
materialCountintv92YesNumber of awakening materials required
materialCumulationRateintv92YesMaterial accumulation rate on failure
scrollCountintv92YesNumber of awakening scrolls required
scrollIdintv92NoItem template ID for the required scroll (omit for 4th level)

The XML schema follows this structure with 4-level nesting in the MaterialData section:

EnchantData (awakenMaxCount, masterpieceMaxCount, normalMaxCount)
├── EnchantRate
│ └── ItemEnchant (combatItemType, rank, enchantStep, enchantProb, zeroProb, materialCumulationRate, enchantStepOnFail) [repeating]
├── SameItemEnchantRate
│ └── ItemEnchant (combatItemType, rank, enchantStep, enchantProb, zeroProb) [repeating]
├── MaterialData
│ └── EnchantMaterial (combatItemType, rank, enchantStep)
│ └── MaterialByRarity (rareGrade, materialCount, scrollCount, scrollId?) [repeating]
├── EnchantSuccessRating
│ └── Rating (step, common, good) [repeating]
├── EnchantDecompositionData
│ └── EnchantDecomposition (combatItemType, rank, rareGrade, baseCost, resultItemTemplateId, resultItemAmount) [repeating]
└── AwakenData (materialCount, materialCumulationRate, scrollCount, scrollId?) [max 4]

Valid values for combatItemType property:

  • None
  • MonsterBullet
  • MonsterBullet2
  • MonsterBullet3
  • MonsterBullet4
  • PCBullet
  • PCBullet2
  • PCBullet3
  • PCBullet4
  • NormalBullet
  • NormalBullet2
  • NormalBullet3
  • NormalBullet4
  • SkillEquipA
  • SkillEquipB
  • SkillEquipC
  • SkillEquipD
  • SkillEquipE
  • SkillEquipF
  • SkillEquipG
  • SkillEquipH
  • SkillEquipI
  • SkillEquipJ
  • SkillEquipK
  • SkillEquipL
  • SkillEquipM
  • SkillEquipN
  • SkillEquipO
  • SkillEquipP
  • EquipWeapon
  • EquipWeaponS1
  • EquipWeaponS2
  • EquipWeaponS3
  • EquipWeaponS4
  • EquipWeaponS5
  • EquipArmorHelmet
  • EquipArmorBody
  • EquipArmorHand
  • EquipArmorLeg
  • EquipArmorShoes
  • EquipPants
  • EquipPantsU1
  • EquipAccessoriesNeck
  • EquipAccessoriesEar
  • EquipAccessoriesRing
  • EquipAccessoriesWaist
  • EquipAccessoriesWrist
  • EquipAccessoriesNose
  • EquipCompanionWeapon
  • EquipCompanionCloth
  • EquipArtifact
  • UseableCoolTime
  • UseableOnetime
  • UseableToPet
  • ExpendableByRevival
  • ExpendableByMove
  • ExpendableByShortcut
  • ExpendableByAuto
  • ExpendableByDrop
  • QuestMaterial
  • QuestQuick
  • OtherPet
  • OtherMoney
  • OtherGoldBar
  • OtherChangeJob
  • OtherChangeSex
  • OtherRecoverExp
  • OtherAutoPotion
  • OtherFishingRod
  • OtherFishingBait
  • OtherFish
  • OtherCatchingTool
  • OtherCatchedInsect
  • OtherCoin
  • OtherOpenBox
  • OtherSculpture
  • OtherWeaponEnchantStone
  • OtherArmorEnchantStone
  • OtherCompanionWeaponEnchantStone
  • OtherCompanionClothEnchantStone
  • OtherTrophy
  • OtherRecipe
  • OtherExpendable
  • OtherEtc

  • Singleton entity: EnchantData is a singleton with EntityId = 1. Always use an empty array [] for delete operations, not an ID-based deletion.

  • Rarity as integer: The rareGrade property uses integer values (0, 1, 2, etc.), not enum names like “Common” or “Rare”. Always use numeric values.

  • Update replaces collections: When updating arrays like enchantRates or materialData, the entire collection is replaced (clear-and-replace semantics). The update operation clears existing items and replaces them with the new ones.

  • AwakenData maximum: Maximum of 4 AwakenData elements representing awakening levels 1-4. The 4th element typically omits scrollId.

  • MaterialData nesting: The MaterialData section has 4 levels of nesting: MaterialDataEnchantMaterialmaterialsByRarity array → MaterialByRarity properties. Ensure correct YAML indentation.

  • Probability values: Use decimal values between 0.0 and 1.0 for probability fields (enchantProb, zeroProb).

  • Required attributes: The three root attributes (awakenMaxCount, masterpieceMaxCount, normalMaxCount) are always required for create and upsert operations.

  • CombatItemType as string: The combatItemType property accepts string values from the CombatItemType enum, not integer codes.

  • Schema version: Always specify schema: v92 in your spec for EnchantData operations.

  • Delete behavior: Delete operation clears all root attributes and removes all container sections, leaving an empty <EnchantData> root element.