QuestWorldObjective.txt

Objectives for World Quests. Up to 5 objectives per quest, each scoped by RequireIndex, RequireGroup, and RequireState. Supports monster kills (with party sharing), item collection, "has skill" checks, level checks, and button-press goals.

File Location#

Data/QuestWorld/QuestWorldObjective.txt

Loaded once at GameServer startup. Changes require a restart.

Format#

Free-form table. Blank lines and a repeated header comment may be used to visually group rows by quest, but the loader reads continuously until end.

//Number Type Index Quantity Level Option1 Option2 Option3 NewOption RequireIndex RequireGroup RequireState DW DK FE MG DL SU RF

Columns#

ColumnEffect
NumberObjective slot within the quest (0-4). The client shows them in this order and the server stores progress per-slot
TypeObjective kind. 1 = Kill monster, 2 = Player already knows a skill, 4 = Hold an item in inventory, 8 = Reach level, 16 = Button / special counter (incremented by an in-game button press handler)
IndexTarget ID. For Type=1 the monster class; for Type=2 the skill index; for Type=4 the item index; for Type=8 and Type=16 unused
QuantityCount needed. For Type=8 (level) it is the required level; for Type=2 (skill) any non-zero value is satisfied by owning the skill
LevelItem +level requirement (used only for Type=4)
Option1/2/3Item option requirements shown in the client display (used only for Type=4)
NewOptionExcellent option requirement shown in the client display (used only for Type=4)
RequireIndexQuestWorld Index this objective belongs to. * = no prerequisite
RequireGroupQuestWorld Group this objective belongs to
RequireStateQuest state while this objective is active (usually 1 = accepted)
DW ... RFPer-class applicability. Same scale as QuestWorld.txt: 0 hidden, 1 1st class only, 2 1st and Change-Up

Important Behavior#

  • Kill counts are shared inside a party: when a party member lands the killing blow, the first party member with a matching active objective gets a +1 tick. Solo kills only credit the top-damage dealer.
  • Item objectives check the inventory on demand; items are not consumed by the objective itself. Drop rates are whatever the killed monster's loot table yields - there is no quest-specific drop-rate override.
  • Button / special objectives increment only via the explicit button packet from the client; they are not time- or kill-driven.
  • All configured objectives for the quest must reach their Quantity for the turn-in to succeed.

Cross-File Dependencies#

AttributeRelated in
RequireIndex + RequireGroupQuestWorld.txt
Index for Type 1 (kill)Monster.xml
Index for Type 4 (collect)Item.xml
Index for Type 2 (skill)TODO: verify skill index table source

Common Issues#

  • Objective not tracking - RequireIndex + RequireGroup combination does not match an active QuestWorld quest, or the quest is not in RequireState
  • Items never drop for quest - no drop-rate override column exists; monster drop tables are unchanged
  • Kill count credits wrong monster - Index mismatch with Monster.xml class ID
  • Per-class flag misaligned - the 7 class columns (DW DK FE MG DL SU RF) must all be present; short rows are malformed and skipped
  • Button objective never ticks - Type=16 requires the client to send the quest button packet; no passive progression

Last updated April 21, 2026