ShadowHelper1.0.4.zip
What's new
Core rotation & Next Cast logic
- Guitar Hero–style single highway bar: SWP, VT, Mind Blast, and SWD each ride their own thin sub-lane on one shared bar, positioned by real "need time" (accounts for cast time, not just raw remaining duration).
- "Next Cast" readout shows the single best action to press right now, including Inner Focus, Trinket/Destruction Potion during lust, Dark Rune/Mana Pot/Shadowfiend at configurable mana thresholds, and Fade at a configurable threat threshold.
- Look-ahead collision protection: before recommending anything, the engine checks whether casting it would occupy you long enough that SWP or VT would cross its own deadline in the meantime — if so, the dot force-preempts the original pick, even before it hit its own "green" window. (Example: Mind Blast comes off cooldown while VT has 2s left — VT now correctly jumps the queue instead of falling off mid-MB-cast.)
- VT always wins over SWP in a collision tie — VT's party-wide mana return is worth more than SWP's personal damage.
- Mind Flay clip-awareness: tracks the live channel and only recommends clipping it right after a tick lands (not mid-tick), unless a genuine SWP/VT emergency justifies interrupting immediately. Starting Mind Flay is itself subject to the same collision check as everything else.
- Fade / threat management: recommends Fade once your live threat (via the game's own threat API) crosses a configurable percentage, gated to group/raid only. Treated as a real emergency — can interrupt Mind Flay mid-tick.
- Bar-Queue Colors: the 4 highway lane bars are colored by their rank in the cast order (1st/2nd/3rd/4th up), not just their own individual readiness — fully player-customizable colors.
- Latency-aware timing: the "safe to recast" window for SWP/VT is read live from the game's own connection latency instead of a guessed fixed buffer, since Shadow Priest spells are confirmed hitscan (no travel time).
Rotation & Tracking configuration
- Rotation tab: fully independent, reorderable, toggleable priority list covering Fade, Trinket, Destruction Pot, Inner Focus, Dark Rune, Mana Pot, Shadowfiend, VT, SWP, Mind Blast, SWD, and Mind Flay.
- Trinket/Destruction Pot: independent "While Lusted" / "Recommend when Exhausted" checkboxes (the latter checks the actual post-lust Exhaustion/Sated debuff, not just "lust isn't up").
- Dark Rune, Mana Pot, Shadowfiend, and Fade each get an inline editable trigger threshold (mana % or threat %) directly on their row.
- Per-item enable/disable checkboxes throughout, so unused items (no trinket that raid, no Destro Pot on hand, etc.) can be hidden from both the cooldown row and the recommendation logic.
Buff Watch
- Tracks Shadow Protection, Fortitude, Inner Fire, and Divine Spirit — shown only when actually missing, works in any spec (not gated by Shadowform), toggleable per-buff.
- Lives on its own independent, draggable frame with short acronym labels and a single "Missing" indicator instead of repeating it per icon.
UI & customization
- Split into three independently movable/lockable frames: Next Cast, Cooldowns, and Buff Watch — one shared lock toggle, each remembers its own position.
- Options panel split into General / Tracking / Rotation tabs, centered content throughout.
- Scale, Icon Size, and Bar Width controls; customizable Ready/Soon/Not-yet colors and Bar Queue colors.
- Load In Combat Only (hides Next Cast/Cooldowns outside combat; Buff Watch stays available) and Show Test Frames (forces visibility for repositioning).
- Shadowform gate: the rotation-specific frames disable themselves outside Shadow spec, live-updating on respec.
Bug fixes (client-specific API issues)
- Fixed several silent failures caused by APIs that don't exist on this client (
GetItemInfoInstant,GetItemCooldown) — these were causing cooldown-row items to error out or, worse, silently report "always ready" regardless of actual cooldown state (the root cause behind potions/Dark Rune getting recommended while genuinely on cooldown). - Fixed the Shadowform spec-gate not actually gating anything for non-Shadow specs — root cause traced to a spellbook-scanning check with a fail-open safety net masking the real failure.
- Fixed Mind Blast/SWD flickering unavailable during the GCD sweep.
- Every cooldown/tracking check now runs in its own isolated error boundary, so one broken lookup can't silently blank out unrelated parts of the UI.
Research-based corrections (mechanics verified, not assumed)
- Confirmed items (trinkets, potions, Dark Rune) don't trigger the shared GCD in this era of WoW, unlike spell casts — fixed the collision math that had been overstating how long using one would "block" other casts.
- Confirmed Mind Flay's tick count is haste-independent in TBC (haste only shortens the channel) — corrected an earlier assumption based on a source describing a much later expansion's mechanics.
- Confirmed Destruction Potion and Mana Potion share a cooldown category, while Dark Rune does not.
- Confirmed Fade's real numbers (330 mana, 10s duration, 30s cooldown at max rank) and its actual mechanic (temporary threat suppression, not permanent removal).
Since the last changelog (1.11.0 → 1.16.3)
New features
- Cast-queue window indicator - the game's own client-side mechanic lets you press the next spell in the last ~500ms of a cast for zero gap once it finishes. Added real cast tracking for VT and Mind Blast (previously only Mind Flay was tracked this way) - the Next Cast icon flashes a distinct, customizable color during that window as a "press now" cue.
- 4 highway orientations - horizontal (default), horizontal mirrored, vertical, and vertical mirrored - via two independent checkboxes (Vertical Bars, Mirrored). Rebuilt the highway's geometry as a shared system instead of hardcoded horizontal-only math.
- Color swatch selection borders - every color picker now shows a border around whichever preset is currently active, so it's obvious at a glance which color is selected on a given row.
Rotation logic corrections (sourced from a top TBC Shadow Priest's own guide)
- VT always wins over SWP in an emergency collision, not just "whichever is closer to falling off" - VT's mana return benefits the whole party.
- Mind Flay now requires at least 2 ticks before clipping, not 1 - clipping after only 1 tick wastes the GCD for almost nothing and is a real DPS loss.
- Fade's default trigger threshold raised from 80% to 92%, and the reasoning corrected - its threat reduction is temporary and fully returns when the buff expires, so using it early doesn't create real safety margin and can even waste part of the effect.
- Inner Focus moved from 4th to 9th in the default priority order, right before Mind Blast, since its buff is consumed by the next MB cast.
- Fixed
manaPotItemsonly listing 3 of the 5 items that actually share the potion cooldown.
Bug fixes
- Bar Queue Colors could disagree with Next Cast - a bar could show green for a spell that wasn't actually the recommended cast. Rebuilt to derive its ranking from the same fully-resolved list Next Cast uses.
- Buff Watch could freeze after a spec swap, stuck on stale "Missing" icons until a reload. Root cause: the addon's entire update loop was hosted on a frame that hides itself outside Shadow spec, and a WoW frame's update script only fires while it's shown - so leaving Shadow spec silently stopped everything, not just the rotation tracker. Moved the timer onto a dedicated always-visible frame.
- Divine Spirit showed as "Missing" even for priests who can never provide it - it's a Discipline talent, not a baseline spell every priest can train. Now only flagged as missing if the player actually has the talent.
Options panel overhaul
- Reorganized the General tab into a 2-column layout to shrink the panel for smaller screens - Frames and Bar Queue Colors on the left, Scaling and Note Colors on the right, Highway Orientation bottom-left. Panel widened from 530 to 620px to fit two columns, but height dropped from 860 to 670px overall.
- Aligned Bar Queue Colors and Note Colors so both sections start at the same height, directly across from each other in their columns.
- Increased font size on the Tracking and Rotation tabs, both of which had noticeably more blank space than their content needed after the panel shrank. Rotation needed real width accounting (not just a font swap) since it packs far more per row than Tracking - widened rows and re-centered both tabs for the new dimensions.
- Color rows no longer stagger - every row uses a fixed-width label, so all the color options line up in the same columns regardless of label length.
- Removed the redundant "(threat)" suffix from Fade's Rotation-tab label.
- Real up/down arrows on the Rotation tab, replacing plain text characters ("^" and "v", a keyboard-availability workaround) with WoW's built-in scroll-arrow button graphics.
- Centered text on every button across all three tabs.
This mod has no additional files

