The foundation. NPC dialogue with branching responses, quest state tracking, requirements, actions, a player journal, and an in-game editor — all in one plugin.
Per-player floating quest-state icons above NPCs. Shows at a glance whether an NPC has a quest available, one in progress, completed, or on cooldown.
A lightweight in-game dialog builder for linear NPC conversations. Build and export multi-page dialogs directly to QuestLines without writing any JSON.
A player title system. Grant richly formatted titles as quest rewards, let players choose their active title, and display it as a chat prefix or PlaceholderAPI placeholder.
Define custom in-game screens as .gui.json files. Buttons run any
Core action, elements can be requirement-gated, and text fields support Core
variables. Open any screen with the opengui: action.
How the Plugins Fit Together
Core is required. Icons, Dialog, and Titles are optional companions. They will load without Core but do nothing useful (except Titles, which works standalone).
- Core handles all quest data, player state, NPC dialogue, and the in-game editor. It is required by Icons and Dialog.
-
Icons reads QuestLines’ NPC assignments from
npcs.jsonand renders per-player floating icons on top of NPCs based on the player’s quest state. No config beyondicons.jsonis needed. - Dialog provides a simplified UI for creating linear (non-branching) dialogues. Exported dialogs are written into Core’s quest directory and loaded via Core’s quest system — without Core, the exports have nowhere to go.
-
Titles is a standalone player title system. When installed alongside
Core it automatically registers
giveTitle:/removeTitle:actions,hasTitle:/titleActive:requirements, and a{title}text variable. It also integrates with VaultUnlocked (chat prefix) and PlaceholderAPI (%title%). -
GUI lets admins define custom in-game screens as
.gui.jsonfiles. When installed alongside Core it registers theopengui:guiIdaction, which can be used in any dialogue response, load action, or button. Elements and slots can be conditionally hidden using any Core requirement; text fields support all Core text variables.
New to QuestLines? Start with Core Overview to understand quests, pages, and the page resolution algorithm. Then set up your first NPC via NPC Setup. Add Icons and Dialog once Core is running.
JAR Files
Each plugin ships as a separate JAR file placed in the server’s mods/ directory:
| Plugin | JAR file | Data directory |
|---|---|---|
| QuestLines (Core) | questlines-core-{version}.jar |
mods/QuestLines/ |
| QuestLines Icons | questlines-icons-{version}.jar |
mods/QuestLinesIcons/ |
| QuestLines Dialog | questlines-dialog-{version}.jar |
mods/QuestLinesDialog/ |
| QuestLines Titles | questlines-titles-{version}.jar |
mods/QuestLineTitles/ |
| QuestLines GUI | questlines-gui-{version}.jar |
mods/QuestLinesGUI/ |
If you previously used the Icons plugin when its data directory was
mods/Icons/, it will automatically migrate icons.json
to the new mods/QuestLinesIcons/ location on first start.