Skip to content

Achievement Grade Info

AchievementGradeInfo.xml defines grade tiers used by the achievement system: per-category tier thresholds and time-based seasonal grade periods.

VersionStatus
v92Full
v90-
v86-

Section: achievementGradeInfo Sub-entities: categoryGrades, seasons Operations: create, update, delete, upsert (per sub-entity) File organization: SingleFile — AchievementGradeInfo.xml


spec:
version: "1.0"
schema: v92
achievementGradeInfo:
categoryGrades:
create:
- id: 99001
grades:
- id: 1
name: "Bronze"
needRate: 0.2
- id: 2
name: "Silver"
needRate: 0.5
- id: 3
name: "Gold"
needRate: 0.8
achievementGradeInfo:
categoryGrades:
update:
- id: 99001
changes:
grades:
- id: 1
name: "Bronze"
needRate: 0.25
- id: 2
name: "Silver"
needRate: 0.6
achievementGradeInfo:
categoryGrades:
delete:
- 99001
spec:
version: "1.0"
schema: v92
achievementGradeInfo:
seasons:
create:
- id: 99001
active: true
name: "Season 1"
startDate: 20250101
point: 15000
grades:
- id: 1
name: "Bronze"
needRate: 0.2
- id: 2
name: "Silver"
needRate: 0.5
achievementGradeInfo:
seasons:
update:
- id: 99001
changes:
active: false
name: "Season 1 (Ended)"
achievementGradeInfo:
seasons:
delete:
- 99001

AttributeTypeSinceRequiredDescription
idintv92YesCategory grade identifier
gradeslist[Grade]v92NoList of grade tier definitions
AttributeTypeSinceRequiredDescription
idintv92YesSeason identifier
activeboolv92NoWhether the season is active
namestringv92NoSeason name (string table reference)
startDateintv92NoSeason start date (YYYYMMDD format)
pointintv92NoTotal point threshold for the season
gradeslist[Grade]v92NoList of grade tier definitions

Shared structure used by both category grades and seasons. Defines a single tier threshold.

AttributeTypeSinceRequiredDescription
idintv92YesGrade tier identifier
namestringv92YesGrade tier name (e.g., “Bronze”, “Silver”)
needRatedecimalv92YesCompletion rate threshold (0.0–1.0)
iconstringv92NoGrade icon (structural default: "")
compensationstringv92NoCompensation reference (structural default: "")

AchievementGradeInfo.xml
└── AchievementGradeInfo
├── GeneralGrade (not modeled)
│ └── Grade (0..5)
│ @id @name @desc
├── CategoryGrade (0..6)
│ @id
│ └── Grade (0..5)
│ @id @name @needRate @icon @compensation
└── Season (0..10)
@id @active @name @startDate @point?
└── Grade (0..5)
@id @name @needRate @icon @compensation

  • Two entities, one file: Category grades and seasons share AchievementGradeInfo.xml. Both can be modified in the same YAML spec under the achievementGradeInfo section.
  • GeneralGrade: The GeneralGrade element is a singleton with fixed content and is not currently modeled in the DSL.
  • Structural defaults: Grade icon and compensation attributes are structurally required in XML but default to empty strings. They do not need to be specified in YAML — the pipeline writes the type-zero value ("") automatically.
  • Clear-and-replace: Grades use clear-and-replace semantics. Providing a grades list on update replaces all existing grade children.