EnchantData
Overview
Section titled “Overview”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.
Version Support
Section titled “Version Support”| Version | Status |
|---|---|
| v92 | Full |
| v90 | - |
| v86 | - |
DSL Support
Section titled “DSL Support”Entity: enchantDatas
Operations: create, update, delete, upsert
Quick Recipes
Section titled “Quick Recipes”Create
Section titled “Create”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: 4Create with Basic Attributes Only
Section titled “Create with Basic Attributes Only”spec: version: "1.0" schema: v92
enchantDatas: create: - awakenMaxCount: 3 masterpieceMaxCount: 2 normalMaxCount: 12Update
Section titled “Update”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: 0Upsert
Section titled “Upsert”Create if not exists, update if exists:
spec: version: "1.0" schema: v92
enchantDatas: upsert: - awakenMaxCount: 4 masterpieceMaxCount: 3 normalMaxCount: 10Delete
Section titled “Delete”Remove all data (empty array for singleton):
spec: version: "1.0" schema: v92
enchantDatas: delete: []Properties Reference
Section titled “Properties Reference”Root Element Attributes
Section titled “Root Element Attributes”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
awakenMaxCount | int | v92 | Yes | Maximum awakening level (typically 3 or 4) |
masterpieceMaxCount | int | v92 | Yes | Maximum masterpiece enchantment level |
normalMaxCount | int | v92 | Yes | Maximum normal enchantment level |
EnchantRate Section
Section titled “EnchantRate Section”Container element: EnchantRate
Child element: ItemEnchant (repeating)
Defines standard enchantment success rates by item type, rank, and enchant step.
ItemEnchant (within EnchantRate)
Section titled “ItemEnchant (within EnchantRate)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
combatItemType | string | v92 | Yes | Combat item type (see CombatItemType enum) |
rank | int | v92 | Yes | Item rank/tier |
enchantStep | int | v92 | Yes | Current enchantment level |
enchantProb | decimal | v92 | Yes | Success probability (0.0 to 1.0) |
zeroProb | decimal | v92 | Yes | Probability of dropping to enchant level 0 on failure |
materialCumulationRate | int | v92 | Yes | Material accumulation rate on failure |
enchantStepOnFail | int | v92 | Yes | Enchant level to drop to on failure |
SameItemEnchantRate Section
Section titled “SameItemEnchantRate Section”Container element: SameItemEnchantRate
Child element: ItemEnchant (repeating)
Defines success rates when using the same item as enchantment material (alternative enchantment method).
ItemEnchant (within SameItemEnchantRate)
Section titled “ItemEnchant (within SameItemEnchantRate)”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
combatItemType | string | v92 | Yes | Combat item type (see CombatItemType enum) |
rank | int | v92 | Yes | Item rank/tier |
enchantStep | int | v92 | Yes | Current enchantment level |
enchantProb | decimal | v92 | Yes | Success probability (0.0 to 1.0) |
zeroProb | decimal or int | v92 | Yes | Probability of dropping to enchant level 0 on failure |
MaterialData Section (4-Level Nesting)
Section titled “MaterialData Section (4-Level Nesting)”Container element: MaterialData
Nested structure: EnchantMaterial → MaterialByRarity
Defines required materials for enchantment organized by item type, rank, enchant step, and rarity.
EnchantMaterial
Section titled “EnchantMaterial”| Property | Type | Since | Required | Description |
|---|---|---|---|---|
combatItemType | string | v92 | Yes | Combat item type (see CombatItemType enum) |
rank | int | v92 | Yes | Item rank/tier |
enchantStep | int | v92 | Yes | Target enchantment level |
MaterialByRarity (nested within EnchantMaterial)
Section titled “MaterialByRarity (nested within EnchantMaterial)”Array property: materialsByRarity
| Property | Type | Since | Required | Description |
|---|---|---|---|---|
rareGrade | int | v92 | Yes | Item rarity grade (0=Common, 1=Uncommon, 2=Rare, etc.) |
materialCount | int | v92 | Yes | Number of enchantment stones required |
scrollCount | int | v92 | Yes | Number of enchantment scrolls required |
scrollId | int | v92 | No | Item template ID for the required scroll |
EnchantSuccessRating Section
Section titled “EnchantSuccessRating Section”Container element: EnchantSuccessRating
Child element: Rating (repeating)
Defines rating/score bonuses awarded based on enchantment success at different steps.
Rating
Section titled “Rating”Array property: successRatings
| Property | Type | Since | Required | Description |
|---|---|---|---|---|
step | int | v92 | Yes | Enchantment step (level) |
common | int | v92 | Yes | Rating points for common success |
good | int | v92 | Yes | Rating points for good success |
EnchantDecompositionData Section
Section titled “EnchantDecompositionData Section”Container element: EnchantDecompositionData
Child element: EnchantDecomposition (repeating)
Defines rewards for decomposing enchanted items.
EnchantDecomposition
Section titled “EnchantDecomposition”Array property: decompositions
| Property | Type | Since | Required | Description |
|---|---|---|---|---|
combatItemType | string | v92 | Yes | Combat item type (see CombatItemType enum) |
rank | int | v92 | Yes | Item rank/tier |
rareGrade | int | v92 | Yes | Item rarity grade (0=Common, 1=Uncommon, etc.) |
baseCost | int | v92 | Yes | Base gold cost for decomposition |
resultItemTemplateId | int | v92 | Yes | Item template ID of the decomposition result |
resultItemAmount | int | v92 | Yes | Quantity of result items received |
AwakenData Elements
Section titled “AwakenData Elements”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
| Property | Type | Since | Required | Description |
|---|---|---|---|---|
materialCount | int | v92 | Yes | Number of awakening materials required |
materialCumulationRate | int | v92 | Yes | Material accumulation rate on failure |
scrollCount | int | v92 | Yes | Number of awakening scrolls required |
scrollId | int | v92 | No | Item template ID for the required scroll (omit for 4th level) |
XML Structure
Section titled “XML Structure”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]Enum Reference
Section titled “Enum Reference”CombatItemType
Section titled “CombatItemType”Valid values for combatItemType property:
NoneMonsterBulletMonsterBullet2MonsterBullet3MonsterBullet4PCBulletPCBullet2PCBullet3PCBullet4NormalBulletNormalBullet2NormalBullet3NormalBullet4SkillEquipASkillEquipBSkillEquipCSkillEquipDSkillEquipESkillEquipFSkillEquipGSkillEquipHSkillEquipISkillEquipJSkillEquipKSkillEquipLSkillEquipMSkillEquipNSkillEquipOSkillEquipPEquipWeaponEquipWeaponS1EquipWeaponS2EquipWeaponS3EquipWeaponS4EquipWeaponS5EquipArmorHelmetEquipArmorBodyEquipArmorHandEquipArmorLegEquipArmorShoesEquipPantsEquipPantsU1EquipAccessoriesNeckEquipAccessoriesEarEquipAccessoriesRingEquipAccessoriesWaistEquipAccessoriesWristEquipAccessoriesNoseEquipCompanionWeaponEquipCompanionClothEquipArtifactUseableCoolTimeUseableOnetimeUseableToPetExpendableByRevivalExpendableByMoveExpendableByShortcutExpendableByAutoExpendableByDropQuestMaterialQuestQuickOtherPetOtherMoneyOtherGoldBarOtherChangeJobOtherChangeSexOtherRecoverExpOtherAutoPotionOtherFishingRodOtherFishingBaitOtherFishOtherCatchingToolOtherCatchedInsectOtherCoinOtherOpenBoxOtherSculptureOtherWeaponEnchantStoneOtherArmorEnchantStoneOtherCompanionWeaponEnchantStoneOtherCompanionClothEnchantStoneOtherTrophyOtherRecipeOtherExpendableOtherEtc
Common Pitfalls
Section titled “Common Pitfalls”-
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
rareGradeproperty 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
enchantRatesormaterialData, 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
AwakenDataelements representing awakening levels 1-4. The 4th element typically omitsscrollId. -
MaterialData nesting: The
MaterialDatasection has 4 levels of nesting:MaterialData→EnchantMaterial→materialsByRarityarray →MaterialByRarityproperties. 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
combatItemTypeproperty accepts string values from the CombatItemType enum, not integer codes. -
Schema version: Always specify
schema: v92in your spec for EnchantData operations. -
Delete behavior: Delete operation clears all root attributes and removes all container sections, leaving an empty
<EnchantData>root element.