Player Quest System Engine (PQS)
by Garritt Grandberg (Tirrag)
Support: https://www.shroudoftheavatar.com/forum/index.php?threads/player-quest-system.169997/
Download 1.10.0This add-on is a quest engine for player-created quests. It adds a journal window, a conversation and quest-items window, a tray icon that alerts the player when something in an active quest changes, and live progress tracking for gather and kill style goals. The core package ships no quest content itself; after installing it once, players separately enable quest-library add-ons that each supply one shareable quest. It reads normal gameplay chat and combat log lines (loot, kills, crafting, NPC dialogue) locally to detect quest progress, stores quest and settings data in saved variables and in files inside its own folder, and draws its own windows (journal, items, conversations, quest browser, tray icon) using the game's standard add-on UI toolkit. It requests no network access.
Files: player-quest-system.lua, modules-PQS-JSON.lua, modules-PQS-CRITERIA.lua, modules-PQS-ENGINE.lua, modules-PQS-CONTEXT.lua, modules-PQS-CHATLOG.lua, modules-PQS-SOUND.lua, modules-PQS-ASSETS.lua, modules-PQS-BASE64.lua, modules-PQS-RUNTIME.lua, modules-PQS-UI.lua, modules-CLP.lua, modules-json.lua, modules-checksum.lua, modules-SWS-SWS-core.lua
Readme
# Player Quest System Engine (PQS)
The engine behind player-created quests. PQS itself contains no quests: install it once, then enable any number of separate quest library add-ons, each of which ships a single quest as its own small, shareable file. PQS loads them as they're enabled, tracks your progress through each one, and gives you the windows to follow along:
- Journal -- every entry a quest has given you, with tasks, and live progress lines for timers,
cooldowns, and "gather X of Y" / "defeat X of Y" goals. Entries you haven't read yet stand out, and unfinished entries always stay on top.
- Conversations -- a transcript of every conversation a quest has started, with the dialogue
choices you can still make. Conversations with new lines since you last looked stand out.
- Items -- the quest items you're carrying. New or changed items are marked and sorted first.
- Quests browser -- every installed quest, with enable/disable and reset.
- Tray icon -- a small icon that lights up (with a soft, optional sound) when something you
haven't seen yet happens. Clicking it opens whatever needs your attention.
Everything is client-side; quests can read your game state but PQS never changes it.
Install
From the game: open Community Addons and install Player Quest System Engine (PQS). It needs the SotA Event System (SES) add-on, which the store installs for you.
By hand: copy this folder into your Lua folder (type /lua path in game to find it) as Lua/pqs/, type /lua reload, and enable the add-on in the add-on manager.
Settings
The tray alert sound can be turned off or its volume changed. These are stored as saved settings (PlayAlertSound, AlertSoundVolume); there is no file to edit.
How it is built
| File | What it does | |---|---| | player-quest-system.lua | The only file with real ShroudOnStart/ShroudOnUpdate callbacks. Reads saved progress and settings at start, writes changed ones back on each update, and runs the once-a-second quest tick | | modules-PQS-RUNTIME.lua | Loads and removes quests, ticks them, and owns every player-driven change (enable, reset, dialog choices) | | modules-PQS-ENGINE.lua | One quest's events, actions, timers and dialog logic | | modules-PQS-CRITERIA.lua | Evaluates the nested criteria trees that decide when an event fires | | modules-PQS-CONTEXT.lua | Live game state the criteria read (scene, health, inventory, buffs, location, party...) | | modules-PQS-CHATLOG.lua | Turns chat/loot/combat lines into events a quest can react to | | modules-PQS-JSON.lua | Saved progress: a per-quest saved variable, plus a one-time import of old save files | | modules-PQS-SOUND.lua | Sound criteria and actions for quests | | modules-PQS-ASSETS.lua, modules-PQS-BASE64.lua, modules-checksum.lua | Support for quests that embed their own data | | modules-PQS-UI.lua | The journal, conversations, items and quests windows and the tray icon, built on the vendored SWS window system | | modules-json.lua, modules-CLP.lua | JSON reading/writing and combat-log parsing | | modules-SWS-SWS-core.lua | Vendored shared window system (also used by this author's other add-ons) |
Upgrading from the old file-based version
Earlier versions of PQS kept each quest's progress in pqs/saves/<quest>.save.json and the sound settings in pqs/user.ini. On first load, PQS imports each of those it finds into its new saved format and renames the old file with an .imported extension as a visible completion marker -- nothing further to do. If you're installing fresh from the store there is nothing to import and this step is skipped.
Full reference: [the add-on API](https://catnipgames.net/lua/reference.html) and [the add-on guide](https://catnipgames.net/lua/guide.html).
Approved versions
- v1.10.0 2026-10-01