QuestWorldReward.txt

Rewards granted on World Quest completion. Up to 5 reward rows per quest, each scoped by RequireIndex, RequireGroup, and RequireState. A quest that should grant both XP and zen needs two rows (one per type).

File Location#

Data/QuestWorld/QuestWorldReward.txt

Loaded once at GameServer startup. Changes require a restart.

Format#

Same row shape as QuestWorldObjective.txt. Terminated by end.

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

Columns#

ColumnEffect
NumberReward slot within the quest (0-4). Used by the client to display rewards in order
TypeReward kind. 1 = Experience, 2 = Money (zen), 4 = Item, 8 = Timed effect buff, 16 = Gens contribution. These are distinct values, not a bitmask - one reward row equals one reward type
IndexFor Type=4 the item index; for Type=8 the effect ID; unused for experience, money, and contribution
QuantityAmount. Experience base value (multiplied by AddQuestExperienceRate before granting), zen amount, item stack count, effect duration in seconds, or Gens contribution points
LevelItem +level (used only for Type=4)
Option1/2/3 / NewOptionItem option values written onto the reward item (used only for Type=4)
RequireIndex / RequireGroup / RequireStateWhich quest grants this reward and in which state
DW ... RFPer-class grant flags. Same scale as QuestWorld.txt: 0 hidden, 1 1st class only, 2 1st and Change-Up

Important Behavior#

  • Experience is multiplied by the AddQuestExperienceRate entry for the player's account level before being granted.
  • Experience is suppressed while the player is under a Seal of Sustenance effect.
  • Experience grant stops at the server's quest-XP level cap (MaxLevelUpQuest in Common.dat); past that point the row is silently skipped.
  • Money overflow (MAX_MONEY) is clamped to the cap rather than dropping the reward.
  • Item rewards create Quantity copies of the configured item, one at a time, through the standard quest drop path; inventory-full handling is the standard path.
  • Every matching row runs on turn-in, including multiple item rows and mixed types.

Cross-File Dependencies#

AttributeRelated in
RequireIndex + RequireGroupQuestWorld.txt
Index for Type 4 (item)Item.xml
Index for Type 8 (effect buff)TODO: verify effect ID enum reference
Type=16 Gens contributionCommon.dat Gens System
XP multiplierCommon.dat AddQuestExperienceRate_AL0-3

Common Issues#

  • Player completes quest but gets nothing - no reward row matches the player's class column, or all rows' RequireState does not match the state the quest is in at turn-in
  • Missing second reward - experience and zen are separate Type values; each needs its own row
  • XP reward looks smaller than configured - Quantity is multiplied by AddQuestExperienceRate for the player's account level; base value may differ from granted value
  • Item reward not granted - inventory full; the engine follows the same drop path as any other quest item
  • Effect buff does not apply - Type=8 expects a valid effect ID in Index and duration in seconds in Quantity

Last updated April 21, 2026