Skip to content

Achievement List

AchievementList.xml defines achievement entries: goals that players can complete to earn titles, items, money, and other rewards.

VersionStatus
v92Full
v90-
v86-

Entity: achievements Operations: create, update, delete, upsert File organization: RegionalVariants — AchievementList.xml, AchievementList_{region}.xml


spec:
version: "1.0"
schema: v92
achievements:
create:
- id: 99001
name: "@Achievement:99001001"
description: "@Achievement:99001002"
iconName: "Icon_Achievement.Icon_Achievement_Title_dungeon_Tex"
categoryId: 608
grade: 1
point: 20
active: true
compare: true
compareId: 6024
conditionCheckMethod: "AND"
classes: "common"
serverUnique: "none"
hidden: false
mailSender: "@Achievement:99001005"
detail: "@Achievement:99001003"
conditions:
- id: 0
templateId: 4023
type: "check"
string: "@Achievement:99001004"
value1: 1
rewards:
- rewardType: "title"
title: "@Achievement:99001501"
spec:
version: "1.0"
schema: v92
achievements:
update:
- id: 99001
changes:
active: false
point: 30
grade: 2
spec:
version: "1.0"
schema: v92
achievements:
delete:
- 99001
spec:
version: "1.0"
schema: v92
achievements:
upsert:
- id: 99001
name: "@Achievement:99001001"
description: "@Achievement:99001002"
iconName: "Icon_Achievement.Icon_Achievement_Title_dungeon_Tex"
categoryId: 608
grade: 1
point: 20
active: true
compare: true
compareId: 6024
conditionCheckMethod: "AND"
classes: "common"
serverUnique: "none"

AttributeTypeSinceDescription
idintv92Unique achievement identifier
namestringv92Display name (string table reference)
descriptionstringv92Description text (string table reference)
iconNamestringv92Achievement icon texture name
categoryIdintv92Category this achievement belongs to
gradeintv92Achievement grade/tier (0-based)
pointintv92Points awarded on completion
activeboolv92Whether the achievement is active
compareboolv92Whether the achievement is comparable
compareIdintv92ID used for comparison logic
conditionCheckMethodstringv92How conditions are evaluated (AND or OR)
classesstringv92Class restriction (common for all classes)
serverUniquestringv92Server uniqueness constraint (none, region codes)
AttributeTypeSinceDescription
hiddenboolv92Whether the achievement is hidden from the list
hasTitleboolv92Whether the achievement grants a title
detailstringv92Detailed description (string table reference)
sortGroupstringv92Grouping key for sort order
isDailyPlayGuideboolv92Whether shown in daily play guide
notifyLevelintv92Notification priority level
mailSenderstringv92Mail sender name for reward delivery
withoutMsgClassesstringv92Classes excluded from achievement messages
withoutRewardClassesstringv92Classes excluded from receiving rewards

Achievement completion conditions. Multiple conditions are combined using conditionCheckMethod.

AttributeTypeSinceRequiredDescription
idintv92YesCondition identifier (0 for single conditions)
templateIdintv92YesCondition template defining the check type
typestringv92NoCondition type (check, count)
maxintv92NoMaximum count for count-type conditions
stringstringv92NoDisplay string (string table reference)
value1intv92NoCondition parameter 1
value2intv92NoCondition parameter 2
value3intv92NoCondition parameter 3
value4intv92NoCondition parameter 4
value5intv92NoCondition parameter 5
value6intv92NoCondition parameter 6

Achievement rewards. Each reward has a rewardType discriminator that determines which attributes apply.

AttributeTypeSinceRequiredDescription
rewardTypeRewardTypev92YesDiscriminator for reward type
rewardTypeRequired attributesOptional attributes
titletitledirectApply
itemtemplateId, amountdesc
moneyamount
specialtype, desctargetId, targetType, value
abilityabilityId
awakengrade
AttributeTypeSinceDescription
titlestringv92Title string (string table reference)
directApplyboolv92Whether title is applied automatically
templateIdintv92Item template ID
amountintv92Item count or money amount
descstringv92Reward description
typestringv92Special reward type (extendInven, etc.)
targetIdstringv92Special reward target ID
targetTypestringv92Special reward target type (npc, etc.)
valuedecimalv92Special reward value
abilityIdintv92Ability reward ID
gradeintv92Awaken reward grade

ValueSinceDescription
titlev92Grants a title
itemv92Grants an item
moneyv92Grants gold
specialv92Grants a special reward (inventory expansion, etc.)
abilityv92Grants an ability
awakenv92Grants an awaken grade

AchievementList.xml
└── AchievementList
└── Achievement (0..∞)
@id @name @description @iconName @categoryId @grade @point
@active @compare @compareId @conditionCheckMethod @classes
@serverUnique @hidden? @hasTitle? @detail? @sortGroup?
@isDailyPlayGuide? @notifyLevel? @mailSender?
@withoutMsgClasses? @withoutRewardClasses?
├── Condition (0..∞)
│ @id @templateId @type? @max? @string?
│ @value1? @value2? @value3? @value4? @value5? @value6?
└── RewardList (0..1)
├── TitleReward @title @directApply?
├── ItemReward @templateId @amount @desc?
├── MoneyReward @amount
├── SpecialReward @type @desc @targetId? @targetType? @value?
├── AbilityReward @id
└── AwakenReward @grade

  • Regional variants: Achievement files use regional suffixes (_KR, _JP, _NAEU, etc.). Regional files contain only the achievements that differ from the base AchievementList.xml.
  • String table references: name, description, detail, mailSender, and condition string values are string table references (format @Achievement:{id}{suffix}), not literal text.
  • Condition values: The meaning of value1 through value6 depends on the templateId. Refer to the condition template definitions for the correct parameter mapping.
  • Reward discrimination: Each reward entry requires rewardType to determine which attributes are valid. Using attributes from the wrong reward type is silently ignored.
  • Clear-and-replace: Conditions and rewards use clear-and-replace semantics. On update, providing a new conditions or rewards list replaces the entire set — partial updates of individual conditions/rewards are not supported.