PQ Companion

Help

PQ Companion reference.

Every feature, every prerequisite, and the gotchas worth knowing. New here? Start with the Quick Start and come back when you want detail.

Getting started

PQ Companion is a single Windows app that runs alongside Project Quarm. It does two things: reads your combat log file in real time, and reads JSON exports from Zeal. Everything else — the database, the overlays, the trigger engine — is built on top of those two inputs.

The minimum viable setup is three steps: install the app, point it at your Project Quarm folder in Settings, and turn on the in-game combat log with /log on. That's enough for the database, DPS meter, spell timers, NPC info overlay, and trigger engine to work. For the spellbook, AAs, and inventory features, install Zeal too.

For step-by-step install, see the Quick Start.

Settings & data sources

Open Settings from the sidebar. You'll set up two paths and a name:

  • Project Quarm folder — the directory containing eqgame.exe. The app finds your combat log and .ini files from here.
  • Character name — used to pick the right log file (eqlog_<Character>_quarm.txt) and to tag Zeal exports per character.
  • Zeal folder (optional) — only needed if Zeal writes its exports somewhere other than the default. The app will detect this automatically in most cases.

The character switcher in the top-right lets you flip between any character with a Zeal export. The whole app — progression, inventory, spell checklist, to-dos — follows the active character.

Master Volume

Settings has a master volume slider that scales every trigger sound, TTS utterance, event alert, and timer alert on top of each action's per-trigger volume — dampen everything together without losing the relative balance between individual triggers.

Overlay Dashboard

The Overlays page is your one-stop view of the run. DPS meter, spell timers, NPC info, and trigger alerts all live in a single snap-grid dashboard so you can scan everything at once instead of hopping between tabs.

Drag any panel to move it, drag a corner to resize. The layout persists across sessions. Hit the lock toggle when you're happy with the arrangement so you don't bump it mid-fight.

Pop-out windows

Any panel can pop out as its own transparent, click-through, always-on-top window above the game — same data as the dashboard, just floating over the game. Each pop-out remembers its own size and position. Use the dashboard view at the desk and pop the panels you actually need on top of the game when you alt-tab in.

The dashboard toolbar has a Pop Out All button that opens every standalone overlay window in one click; once any pop-outs exist it flips to Close All Popouts.

Click-through & lock

Pop-outs default to click-through so the game keeps the focus while you read them. Locking an overlay from its title bar makes it click-through; hovering anywhere over a locked overlay temporarily disables passthrough so you can scroll the timer list, click a per-row dismiss button, or drag the header — moving the cursor away restores click-through automatically.

Tips

  • Lock the dashboard before raids so a stray drag doesn't rearrange your layout.
  • Use Pop Out All before a raid pull, then Close All Popouts when you're back at the desk.

Database Explorer

A searchable database of every item, spell, NPC, and zone in Project Quarm. Item and spell icons render inline; cross- references between scrolls and the spells they teach, NPC drops and source mobs, and zones and their NPC rosters are all click-through.

Global search

Press Ctrl + K from anywhere in the app for global search. Results group by type (items, spells, NPCs, zones) so you can jump straight to what you want.

Filters

  • Items: race, class, level, slot, type, and stat thresholds (HP, mana, AC, resists, etc.).
  • Spells: by class and level range. NPC-only spells are hidden by default.
  • Zones: tabs for connected zones, drops, ground spawns, and forage.

DPS Meter & Combat Log

Prerequisite: /log on in-game. The meter parses your combat log live.

Tracks per-fight and session-wide damage for you and your group. Pet and charm damage rolls up under the owner so a chanter's charmed pet doesn't show as a separate combatant; if a former charmed pet starts attacking you, the binding is dropped automatically. Boss fights are kept grouped instead of fragmenting on add-spawn or brief lulls.

DPS vs aDPS

The DPS panel header has a rate-mode toggle. DPS (default) is fight-duration DPS — total damage divided by fight length, which is what raid leaders usually compare. aDPS is active-time DPS — total damage divided by the seconds each combatant was actually swinging or casting, which is fairer for DoT casters, mez-duty enchanters, and anyone whose role legitimately includes downtime. The column header swaps between DPS and aDPS so you always know which you're reading; the choice persists across sessions and syncs to the pop-out window.

Sharing fights

One-click copy of any fight or session summary to the clipboard, formatted for /gu and /tell. Click any combatant to expand their full damage breakdown (melee, spells, procs, pet) before copying.

Combat history

Every fight is retained in a scrollable history. Re-open a fight from last night to grab a parse for a guild post, or compare back-to-back pulls without losing the data. Filter by combatant name, time window, or "me only", and export the visible fights as CSV.

Spell Timers

Prerequisite: /log on.

Tick-accurate countdown bars for every buff, debuff, mez, stun, and DoT. Driven directly from the combat log and keyed per spell-and-target, so casting Visions of Grandeur on three different group members produces three separate timers. Durations are extended automatically by the focus items and AAs your character actually has equipped — pulled from your latest Zeal export.

Buffs vs detrimentals

Buffs and detrimentals get their own overlay windows so you can put the bar you actually need to react to in your line of sight. Each row shows the target name (when it isn't you) and has a small dismiss × to clear that single timer when you know it's gone; the header eraser still bulk-clears the lot. Timers auto-cancel on resist, fade, zone, or death.

The buff overlay header has a sort-mode toggle: remaining (default) puts the soonest-to-expire on top, while recent pins newly-cast buffs to the top and freezes their order so the list stops jumping around as time ticks down. The choice syncs between the dashboard panel and the standalone pop-out window.

Tracking mode

Auto (default) creates a timer for every recognised spell landing — the full firehose. Triggers only shows just the spells you've curated through trigger packs or custom triggers, for a focused overlay instead of full auto-coverage.

Tracking scope

  • Self only — buffs landing on you, nothing else.
  • Cast by me (default) — also includes anything you cast on others, without the noise of other players buffing each other.
  • Anyone — every recognised land, useful for seeing another chanter's debuff on the raid mob.

The optional Filter buffs to my class toggle drops buffs your class can't cast (paladin Spiritual Purity, shaman Talisman, bard songs) so an enchanter's overlay isn't cluttered with raid buffs from other classes.

Display thresholds

Hide overlay rows whose remaining time exceeds a configured threshold (per-category for buffs and detrimentals, with per-trigger overrides). Set to 0 to always show — useful for keeping long-duration raid buffs out of view until they're close to expiring.

Audio alerts

Configurable audio and TTS alerts fire when a timer's remaining time crosses thresholds you set (e.g. 30 s left, 10 s left). Triggers can also carry their own per-trigger "fading soon" alerts — handy for one-off cooldowns or specific mez/charm timers.

NPC Info Overlay

Prerequisite: /log on.

The moment you consider a mob, the overlay shows its level, class, HP, resists, body type, faction, and special abilities — Summon, Unmezzable, Uncharmable, See Invis, Enrage, Flurry, and so on. Pulled straight from the database via your combat log, so it works for any mob the database knows about.

The overlay also auto-detects your target from melee and spell events, so it stays useful even if you don't explicitly /con.

Character Progression

Prerequisite: Zeal installed and at least one export run on this character.

A full per-character workspace driven by Zeal exports. Switch characters with the global character switcher — every progression sub-tab follows the active character.

  • Stats — base HP/Mana, stat caps, worn effects, and softcap AC.
  • Gear — paper-doll view with bag and bank cards. Click any item for the full database entry.
  • AAs — split into trained and available, with descriptions and cost-aware planning.
  • Spell Modifiers — every focus and worn effect that's modifying your spells, in one tab.
  • To-dos — per-character checklist with subtasks for goals (epic pieces, key quests, AA targets).

Spell Checklist

Prerequisite: Zeal spellbook export.

Cross-references every spell your class can learn against your Zeal-exported spellbook so you always know exactly which spells you still need to scribe. Filter by class and level range; NPC-only and unobtainable spells are hidden by default. Click any spell to jump to its full database entry.

Inventory & Key Tracker

Prerequisite: Zeal inventory export.

All inventory across every character in one searchable view, with item icons everywhere — equipped, bags, bank, shared bank. Paper-doll layout with collapsible bag and bank cards. Click any item to open its full database entry in a modal without leaving the page.

Key tracker

Per-key component checklist for VP, Sebilis, Howling Stones, and the rest. Auto-detects intermediate combines (e.g. Vex Thal sub-keys) as you progress, so the list updates without manual ticking.

Custom Triggers & Alerts

Prerequisite: /log on.

A regex trigger engine for any log line. Each trigger fires one or more actions:

  • On-screen text with draggable position and configurable font size.
  • Local sound files via the native file picker, with per-action volume.
  • Text-to-speech for hands-busy alerts.

Exclude patterns

Each trigger can carry a list of exclude patterns (one regex per line). When any exclude matches the same log line as the primary pattern, firing is suppressed — perfect for "fire on player tells, but not on pet Master. responses or merchant/banker/trainer canned phrases." The Group Awareness pack's Incoming Tell trigger ships with sensible defaults; add bazaar trader names you recognise to silence those too.

Triggers that drive spell timers

A trigger can do more than fire an alert — it can also start a countdown on the buff or detrimental overlay. Set a timer duration, optionally a worn-off pattern that clears the row before its natural expiry, and per-trigger "fading soon" audio cues at any thresholds you want. Each trigger can carry a per-trigger display threshold that overrides the global category default.

Per-character scoping

Triggers can be scoped to specific characters — handy for class-specific packs that should only fire when you're on that character. Leave the character list empty to fire for any active character.

Built-in packs

Class packs ship for all 14 classes (Bard, Beastlord, Cleric, Druid, Enchanter, Magician, Monk, Necromancer, Paladin, Ranger, Rogue, Shadowknight, Shaman, Warrior, Wizard) plus a Group Awareness pack (incoming tells, death events, zoning). Each pack bundles the relevant CC-break and cast-failure alerts plus spell timers for the class's core buffs, debuffs, roots, mezzes, charms, and pacify lines. Always-on event alerts for deaths, zoning, resists, and interrupts are independent of the trigger system.

GINA imports

Import GINA shares directly as .xml or .gtp. The app converts the regex patterns and action set so existing community packs work without rewriting them.

Tips

  • Use the live test button beside each trigger to fire it without waiting for the log line — handy for tuning position, font size, and volume.
  • Drag the on-screen alert to where you want it; the position persists across sessions.

Config Backup Manager

One-click backup and restore for every Project Quarm .ini file — UI, hotkeys, socials, the lot. Snapshot before a risky UI overhaul, roll back instantly if something breaks.

Auto-backups

Configure auto-backups on a custom schedule (e.g. once a day) or on file change (every time the game writes the file). Browse, label, and restore previous backups from a single list.

Troubleshooting

The DPS meter / spell timers / NPC info aren't doing anything

All three read from your combat log. Check that you ran /log on in-game (it's per-character and per-session), and that Settings points to the right Project Quarm folder. The log file lives in your Project Quarm folder as eqlog_<Character>_quarm.txt.

The Spell Checklist / Inventory / AAs are empty

Those features need Zeal exports. Run Zeal at least once on the character to populate the JSON, then switch to that character in PQ Companion.

I changed a config and the game broke

Open Backups and restore the most recent snapshot. If you had auto-backups enabled (recommended), there's almost always a clean copy from before the change.

Still stuck?

Open an issue on GitHub with what you tried and any console errors.

Privacy & safety

PQ Companion runs entirely locally. It reads two things off disk: your combat log file and your Zeal JSON exports. Nothing is uploaded anywhere; there's no account, no telemetry beyond auto-update checks against the GitHub releases API.

The app never modifies the game client or game data. It is a read-only tool — no memory injection, no packet modification, no automation that interacts with the game client. If you're worried about server rules, the rule of thumb is: anything PQ Companion does, you could do by hand with a text editor and the in-game UI; it's just a lot faster.