ddon-server/Arrowgene.Ddon.Scripts/scripts/quests/README.md
Paul Campbell 060de5cb1c feat: Implement the EXM "Recurrence of Darkness"
- Partial implemention of the EXM "Recurrence of Darkness" (q50204000) using the
  scripted quest system.
- Moved all scripts to a seperate Arrowgene.Ddon.Scripts project to
  support out of project comde completion in csx scripts.
- Updated the README.md in the scripting project with details on how to
  enable csx autocompletion in Visual Studio Code.
- Enabled scripted quests to have some dyanmic state for the instance of
  the quest.
- Continued to build out QuestBlockUtil and QuestResultCommnandUtil to
  make it more convient to write scripted quests.
- Updated the script callback function to pass a new object
  QuestCallbackParam and updated the function to support passing
  anonymous functions as an argument.
- Moved index calculations for JSON quests to the asset deserializer.
- Adjusted some "discovered quests" to not show the marker on the map
  until after the quest is engaged.
- Renamed the script_dll directory to script_assemblies which is used
  for csx debug support.
- Updated the README.md for the scripts directory.
2025-02-26 10:28:00 -05:00

1.6 KiB

Quests

The quest module defines quests using c# scripts. The quest module is meant to work in tandem with the JSON mechanism. Quests which are very simple may still benefit from the simplicity of the json system. Quests which require more custom behavior should consider using the C# script over JSON.

Note

Scripting support for quests is still in development and may change frequently for some time.

Directory layout

The following section describes the expected organization and naming of quest related script files.

Main Story Quests

Main story quests should be organized under scripts/quests/msq/<season_<major>_<minor>>/q<questid>.csx where season should include the major and minor values. The quest file should be named as q<questid>.csx.

quests
  msq
    season1_0
      q00000001.csx
      q00000002.csx
      ...

World Quests

World quests should be organized under scripts/quests/world_quests/<area>/<questid>. Each variant of the quest should be labeled using q<questid>_<variant>.csx.

quests
  world
    hidell_plains
      q20005010
        q20005010_0.csx
    breya_coast
    ...

Seasonal Event Quests

Season event quests should be organized under scripts/quests/seasonal_events/<event>/<year>. Each quest file required for the event should be labeled using q<quest_id>.csx. Configuration for seasonal events can be found under scripts/settings/SeasonalEvents.csx.

settings
  SeasonalEvents.csx
quests
  seasonal_events
    christmas
        2016
        2017
        2018
          q60301055.csx
          q60301056.csx
          q60301057.csx