QuestLines Dialog
A lightweight in-game builder for linear NPC conversations. Create multi-page dialogs without writing JSON — the plugin exports them directly into the QuestLines quest format and reloads Core automatically.
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.
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 (
Fullby 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
-
Open the builder
Run
/qld. The Dialog Builder UI opens. -
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.
-
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.
-
Reorder or remove pages
Use the up/down arrows next to each page to reorder, or click the trash icon to remove a page.
-
Export to QuestLines
Click Export. The plugin writes the quest file to
mods/QuestLines/quests/<dialogId>.jsonand 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.
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.