A phase-based aura, uptime and raid-mechanic tracker for The Elder Scrolls Online.
One tracker changes its look as its state changes — ready → active → cooldown — instead of stacking several to fake states.
⚠️ Beta (v0.2.0-beta8). The saved-data format may still change between builds.
- Phase-based trackers. A tracker is a small state machine. Phases advance on a buff gained/faded, a stack or time-left threshold, or a timer ending.
- Per-phase display. Several draw kinds — countdown, stacks, per-element colours
and per-phase fonts across all of them:
- Bar with an optional square icon (it never hides behind the icon), configurable height (thin / half / full) and vertical anchor.
- Icon, Text, an audio/flash cue, or hidden.
- Border — a frame whose perimeter drains as the timer runs out; transparent background so it can overlay another phase.
- Gradient sweep — a translucent fill that reveals the icon as time runs down, in the direction you pick.
- A low-time recolour + pulse for bars and borders.
- Parallel layers. Stack several state machines in one tracker so it can show, say, a duration icon and a cooldown frame at once. Each layer is its own node in the tree with a settings card (stack order, 9-point alignment, visibility); drag a phase between layers.
- Switch trackers. Pick several mutually-exclusive effects (e.g. the four vampire stages); build one aura that shows whichever is active. Stage order is editable, or opt out and wire the transitions yourself.
- "How this phase works" card. Plain-language summary of what a phase tracks and where it goes next — no ability IDs to read.
- Load conditions. Gate a tracker by class, role, combat state, slotted skills, zone, boss, curse (vampirism / werewolf), or equipped sets (any / front / back bar). All matched by stable ID, so they work in any client language.
- Current-loadout reader. See the sets you wear, the abilities on your bars, and the grimoires you can scribe; add any as a condition in one click. Updates live as you swap gear or skills.
- Scribing-aware. Add a scribed grimoire's cast id from the live bar/grimoire lists; the aggregator's Focus Scribing surfaces scribed effects (see below).
- Groups. Folders that organise trackers and share load conditions.
- Grid layout. Turn any group into a drawn table — arrange its members into rows × columns with optional row/column headers, styled cells (colours, borders, gaps, striped rows) and an optional "fill empty cells" mode that packs live effects toward one side so a row grows like a buff bar. Off by default; a group stays a plain folder until you switch it on.
- Dynamic groups. A group driven by an external data source (e.g. a taunt tracker) that creates one templated instance per live target. Each instance is self-contained with its own phase machine — the group grows and shrinks as targets come and go. Instance slots are stable across re-sorts so the display never churns.
- Grid fill modes. In "fill empty cells" mode, choose which direction new cells pack — top-up (new items above the anchor) or bottom-down (new items below). Works for both static grid groups and dynamic trackers.
- Reticle highlight. A runtime condition (Conditions tab) that overrides a phase's
border colour while your reticle is over a valid target —
stat: "Reticle on target"action: "Set Border Color". Auto-highlight is opt-in per tracker; no preset magic.
- Graphic display kind. A curated-texture or custom
.ddsrendered inside the tracker box, with state-driven rules that swap the texture on time-left or stack thresholds. - Add-to-layer. Assign a phase to any parallel layer from the Behavior tab; the tree shows each layer as its own node.
- Capture persistence. The aggregator library survives reloads by default, with a settings toggle to keep captures session-only. Favourite effects float to the top; ignored ones hide without re-prompting.
- Live loadout reader. The current-loadout panel in Load conditions shows equipped sets, slotted abilities, and scribable grimoires — click any to add it as a condition in one shot. Updates live as you swap gear.
- Self→Group scrape. The aggregator now captures effects from group members too (not just self and target), helping raid leads discover raid-wide effects.
- Async aggregator list. Large libraries render without blocking the UI, thanks to LibAsync.
- Tracks buffs, debuffs, procs, cooldowns, and passive/permanent buffs.
A live window over ESO's buff/debuff/combat stream — no more manual ability-ID hunting.
- Records every effect it sees, deduped and grouped by relationship: what the boss put on you, what you put on the target, your passives, and more.
- The inspector shows the raw data ESO returns for each effect, so you learn the model as you go.
- Build Tracker turns one effect (or several, as a switch tracker) into a pre-filled tracker in the editor.
- Persists by default. Everything captured is kept across reloads and sessions as a standing library, so the viewer is already populated next time. Turn it off in settings to keep captures for the session only, or clear the library outright.
- Favourite effects to float them to the top (kept even with persistence off); Ignore noise to hide it (the ignored list un-ignores in one click).
- Focus Scribing floats effects from your scribable grimoires up within each favourite band, and tags each with the grimoire it comes from.
- Freeze view holds the list still while capture keeps running.
- Background capture (recording with no viewer open) is off by default; the viewer captures whenever it's open. English client only for now.
/qat— settings/qat capture on/off— passive ID capture/qat aggregator(agg) — open the aggregator/qat restore examples— re-add deleted example trackers
Bind Toggle Tracker Editor and Toggle Effect Aggregator under Controls → Keybindings.
LibAddonMenu-2.0, LibSets, LibMediaProvider, LibAsync (≥30104), LibGroupBroadcast (≥95) (optional: LibDebugLogger). API 101050.
- Overhead icons — self. Render your own tracked auras above your character in the world, not just on the HUD.
- Overhead uptimes — group. Aura uptimes above your groupmates' heads. ESO won't let a client read other players' buffs, so this needs everyone running the add-on and sharing their own state over LibGroupBroadcast.
- Shared trackers. Raid leads broadcast a tracker to the group so everyone runs the same setup (also via LibGroupBroadcast).
- Named-boss targeting. Scope a tracker to a specific boss (e.g. only Z'Maja); the engine resolves the live boss slot, backed by a boss/zone name catalogue.
- Searchable set / ability picker and an in-addon raid-mechanic library.
- Dynamic skill cast blocking based on buff duration/cooldown with LibSkillBlocker which can be used to prevent over-casting
Overhead-group and shared trackers only benefit groupmates who also run the add-on — non-users show nothing.
Independent, clean-room rewrite of HyperTools — thanks to Hyperioxes and Shadowwolf136 for the original. MIT licensed. Not affiliated with ZeniMax Media Inc.