EventMatching
Version support
Section titled “Version support”| Version | Status |
|---|---|
| v92 | Full |
| v90 | - |
| v86 | - |
EventMatching defines the activity finder system: matchable events (dungeons, battlefields, field content), reward schedules, achievements, timeline scheduling, and UI configuration. All data resides in a single EventMatching.xml file with 7 logical entity handlers operating on different sections of the same document.
DSL sections
Section titled “DSL sections”EventMatching is split across 9 DSL sections, each targeting a different part of the XML structure:
| Section | Purpose | Operations | Reference |
|---|---|---|---|
eventMatchingEvents | Matchable event entries | CRUD, upsert | Events |
eventMatchingRewards | Daily/weekly bonuses and limits | update | Rewards |
eventMatchingAchievements | Achievement entries | CRUD, upsert | Config |
eventMatchingTimeline | Day/time scheduling | create, delete | Config |
eventMatchingSettings | Root and singleton settings | update | Config |
eventMatchingFilters | UI filter entries | create, delete | Config |
eventMatchingDefaultImages | Default event images | update | Config |
eventMatchingContentBanner | Banner event lists | create, config | Config |
eventMatchingPlayGuide | Play guide UI links and tips | create, update, delete | Config |
File organization: SingleFile — all entities share EventMatching.xml
Quick recipes
Section titled “Quick recipes”Create an event
Section titled “Create an event”eventMatchingEvents: create: - eventId: 800100 group: priority type: Dungeon questId: 800100 categoryId: 800100 active: true requiredItemLevel: 446 action: type: matching targets: - id: "9088" rewards: - type: exp templateId: 20000001 amount: 551744Configure rewards
Section titled “Configure rewards”eventMatchingRewards: dailyBonuses: update: - completeCount: 16 minLevel: 65 maxLevel: 70 rewards: - type: item templateId: 367 amount: 5 itemRewardMaxCount: normal: 12 additional: 10 weekly: 8 daily: 8Schedule timeline
Section titled “Schedule timeline”eventMatchingTimeline: create: - day: all eventId: 800021 openTime: 1200 closeTime: 2400Update settings
Section titled “Update settings”eventMatchingSettings: root: beginLevel: 10 compensationReceivedCountResetTime: "0500" equipmentGuide: targetItemLevel: 412XML structure
Section titled “XML structure”EventMatching.xml└── EventMatching (root) ├── EventGroup (isSpecialCompensation="false") [priority] │ └── Event [multiple] ← eventMatchingEvents │ ├── Action │ ├── TargetList │ │ └── Target [multiple] │ └── CompensationList │ └── Compensation [multiple] ├── EventGroup (isSpecialCompensation="true") [secondary] │ └── Event [multiple] ├── DailyBonusList ← eventMatchingRewards │ └── DailyBonus [multiple] │ └── CompensationList │ └── Compensation [multiple] ├── AdditionalReward ← eventMatchingRewards │ └── CompensationList [multiple] │ └── Compensation [multiple] ├── CompleteLimitPerDay ← eventMatchingRewards │ └── Setting [multiple] ├── ItemRewardMaxCount ← eventMatchingRewards ├── MissionAchievementList ← eventMatchingAchievements │ └── Achievement [multiple] ├── TimeLine ← eventMatchingTimeline │ └── EnableDay [multiple] │ └── EnableTime [multiple] ├── EventFilter ← eventMatchingFilters │ └── Filter [multiple] ├── DefaultEventImage ← eventMatchingDefaultImages │ └── DefaultImage [multiple] ├── ContentBanner ← eventMatchingContentBanner │ └── EventList [multiple] │ └── Event [multiple] ├── EquipmentGuide ← eventMatchingSettings ├── ReputationStoreTeleport ← eventMatchingSettings ├── PlayGuideQuestNotice ← eventMatchingSettings └── PlayGuideUI ← eventMatchingPlayGuide ├── Link [multiple] ├── Event [multiple] └── Tip [multiple]Common pitfalls
Section titled “Common pitfalls”-
Single file, multiple handlers: All 9 DSL sections modify the same
EventMatching.xmlfile. The pipeline routes each operation to the correct handler based on entity type. -
Event groups: Events are split into two
EventGroupelements byisSpecialCompensation. The DSL usesgroup: priority(false) andgroup: secondary(true) as the human-readable selector. -
Update and delete require
group: When updating or deleting events, you must specifygroupalongsideeventIdso the handler finds the correctEventGroup. -
Singleton elements: Settings, EquipmentGuide, ReputationStoreTeleport, PlayGuideQuestNotice, and ItemRewardMaxCount are singleton elements — updates target them directly without an ID.
-
Reward mail defaults: When rewards are specified without explicit mail fields, defaults are applied:
@EventMatching:2001(sender),@EventMatching:2002(title),@EventMatching:2003(body). -
Timeline composite key: EnableTime entries are identified by the composite key
day + eventId + openTime. Deletes must specify all three.