What It Is

QuestLines Dialog (QLD) is a companion plugin for server admins who need to author straightforward linear conversations quickly. Instead of hand-crafting quest JSON, you open the dialog builder UI with /qld, write the pages of dialogue in-game, and hit Export. The plugin writes a fully valid QuestLines quest file and triggers a hot-reload so the dialog is immediately usable.

Linear dialogs only

QuestLines Dialog is designed for simple, linear conversations — one page flows to the next via a Continue button. For branching dialogue, quest state tracking, requirements, or complex actions, use the full QuestLines Core editor (/ql quest).

Data Model

A Dialog has a unique ID, a title, an NPC name, and an ordered list of Pages.

Dialog

  • ID — unique identifier, used as the QuestLines quest ID and file name
  • Title — display title shown in the Quest Journal
  • NPC Name — the name displayed on every page of the dialog
  • Dialog Width — layout width of the dialogue box (Full by default)

Page

  • Dialog Text — the NPC’s spoken text for this page
  • Continue Label — label on the auto-generated Continue button (default: Continue; last page uses Close)
  • Optional Buttons — extra response buttons with custom labels and QuestLines actions

How Pages Are Wired Together

When a dialog is exported, each page becomes a QuestLines Page:

  • Non-last pages get a response with page:<nextPageId> as their only action.
  • The last page gets a “Close” response with no actions.
  • Any optional buttons defined on a page are appended after the Continue/Close button.
// Exported quest structure (simplified)
{
  "QuestLinesDialog": true,   // marks this quest as dialog-editable
  "Title": "The Innkeeper's Tale",
  "Pages": ["innkeeper_p1", "innkeeper_p2", "innkeeper_p3"],
  "PageData": {
    "innkeeper_p1": {
      "Name":   "Mira the Innkeeper",
      "Dialog": "Welcome, traveller! Come in out of the rain.",
      "Responses": [{
        "Text":    "Continue",
        "Actions": ["page:innkeeper_p2"]
      }]
    },
    "innkeeper_p3": {
      "Dialog": "Enjoy your stay!",
      "Responses": [{ "Text": "Close", "Actions": [] }]
    }
  }
}

Commands

Command Description
/qld Open the Dialog Builder UI. Requires the questlinesdialog.admin permission.
/qldconvert Import dialogs from the Hyronix NPCDialog plugin. Reads mods/Hyronix_NPC Dialog/npcs/npcs.json, converts each NPC entry into a QuestLines quest file, and triggers a QuestLines reload. Requires questlinesdialog.admin.

Workflow: Creating a Dialog

  1. Open the builder

    Run /qld. The Dialog Builder UI opens.

  2. Create a new dialog

    Enter a unique ID, a title, and the NPC name that will appear on every page. Click New Dialog to create it.

  3. Add pages

    Click Add Page to append a page. Type the NPC’s dialogue text. Optionally change the Continue button label or add extra optional buttons with custom labels and QuestLines action strings.

  4. Reorder or remove pages

    Use the up/down arrows next to each page to reorder, or click the trash icon to remove a page.

  5. Export to QuestLines

    Click Export. The plugin writes the quest file to mods/QuestLines/quests/<dialogId>.json and automatically reloads QuestLines so the dialog is live immediately. Then link the quest to an NPC via /ql wand <dialogId> or the NPC Setup panel.

💡
Re-opening a dialog for editing

Exported dialogs are saved with a "QuestLinesDialog": true marker. When you open /qld, any previously exported dialog appears in the dropdown and can be selected, edited, and re-exported without losing your work.

QuestLines Auto-Reload

After export, QuestLines Dialog attempts to reload the QuestLines quest config via reflection so the new dialog is immediately available in-game without a server restart or a manual /ql reload. If QuestLines is not present or the reload fails for any reason, the export is still written to disk and will take effect on the next /ql reload or server restart.

Importing from Hyronix NPCDialog

If your server previously used the Hyronix NPCDialog plugin, you can migrate all NPC dialogs to QuestLines in one command:

/qldconvert

This reads mods/Hyronix_NPC Dialog/npcs/npcs.json, converts each NPC entry into a QuestLines quest file, and reports how many were converted and how many were skipped (e.g. because a file already exists).

Permissions

Permission Default Description
questlinesdialog.admin false Required for /qld and /qldconvert.

Data Directory

QuestLines Dialog stores its own draft data in mods/QuestLinesDialog/. Exported quests are written to mods/QuestLines/quests/ and are indistinguishable from hand-authored QuestLines quests (aside from the "QuestLinesDialog": true marker). You can edit exported quest files directly in any text editor and re-import them into the builder by simply re-opening /qld.