promotional bannermobile promotional banner

ShadowPriest

Shadow Priest class specific addon. Replace icons, hide unit frames, warning when missing buff or debuf.
Back to Files

ShadowPriest-1.0.0-20260915-102817.zip

File nameShadowPriest-1.0.0-20260915-102817.zip
Uploader
SRTwilekSRTwilek
Uploaded
Sep 15, 2026
Downloads
6
Size
649.3 KB
Flavors
Classic TBC
File ID
8885014
Type
R
Release
Supported game versions
  • 2.5.6

What's new

- **Fixed: a spell you have not learned yet locked you out of placing its
  panel.** The Shadowfiend page greyed out every control — *Move it* included —
  until level 66, and the Shadowform page did the same until the talent was
  trained, so the two features that are easiest to set up while there is nothing
  else to do were the two you could not set up. Neither module ever needed the
  spell to draw its frame: both force it on screen while it is unlocked, and it
  was only the config pages that refused. Both pages are now live as soon as the
  module is on, so the panel and the button can be positioned, sized, coloured
  and key-bound in advance; a key saved before the spell exists starts working
  the moment it is trained. What still greys the Shadowfiend page is the module
  being switched off, or a client that does not carry spell 34433 at all, where
  there is genuinely nothing to follow.

  **Preview works without the spell too.** `/sp form test` and the page's
  *Preview* button used to answer *there is nothing to preview*, which left no
  way to see what the warning border looks like before choosing its colour. The
  preview now draws the button and pulses the border whatever the form is. The
  warning is still refused on its own without the spell — with nothing to cast,
  "you are not in Shadowform" is true forever, and it would have become a
  permanent red border for a form the priest cannot enter.

- **Fixed: the Shadowed Unit Frames check demanded the exact version and
  refused every newer one.** Installing 6.0.1 of the Anniversary fork left the
  addon reporting *Shadowed Unit Frames 6.0.0 is not available* with every
  SUF-dependent feature switched off, because the gate compared the version
  string for equality. The version is now a **floor**: 6.0.0 or newer passes,
  compared component by component, so the fork's later releases work without
  this addon having to ship a matching build. The project IDs still have to
  match exactly — they are what identifies the fork, and a version string alone
  never did.

- **Fixed: a passive talent is not in the spellbook, and four things were
  asking the spellbook about one.** The rotation advisor decided you did not
  have **Shadow Weaving** however many points you had spent on it, which made
  "hold Mind Blast until five stacks" impossible to switch on — the tick was
  there, the config page said *you do not have Shadow Weaving*, and Mind Blast
  was advised the moment it came off cooldown. The same wrong question was
  behind the shadow debuff panel's talent gate for Shadow Weaving and Misery,
  which only came right once it had seen the debuff land once, and behind the
  `/sp mana status` line that printed Spirit Tap as untrained. Talents are now
  read from the **talent trees** through one shared reader, matched by the
  talent's own localized name, which also means the pages can say *Shadow
  Weaving 4/5* rather than only yes or no — and `/sp rotation status` and
  `/sp weave status` print the tree rank and the spellbook answer next to each
  other, so the two can never disagree silently again.

- **The mana flow bar**, `modules/ManaFlow.lua` +
  `modules/ManaFlowConfig.lua`: a bar that answers the one question a filling
  bar cannot — am I winning. It does not fill. It sits in the **middle** and
  grows out of the centre: red to the **left** for mana leaving, green to the
  **right** for mana arriving, and the two cancel. Cast for 100 and the red is
  100 wide; a 20 tick lands and it is 80 wide. What it draws is the net of the
  last few seconds and not a running total, so it walks back to the middle on
  its own even when the mana never came back — a total from the start of the
  fight is pinned at the far left inside a minute and stops telling you
  anything. Because a net over a window is also a rate, the number on the right
  is that same figure per second, which is the one that says whether the fight
  is affordable. Half the bar is a share of your **maximum** mana (10% by
  default), so the same width always means the same amount and the setting
  survives twenty levels; past the end of the scale the fill stops and a bright
  cap is drawn at that end, so a bar pinned at maximum never looks like one that
  is merely full. An Intellect buff dropping, a gear swap or a resurrection is
  **not** drawn as a spend. It is a separate bar from the mana tick bar with its
  own position and colours, and either can be switched off without touching the
  other. `/sp flow`, `/sp flow test` to place it while standing still, and
  `/sp flow status` for the window, the gross both ways, the net, the rate and
  the scale in mana.

- **The rotation advisor**, `modules/Rotation.lua` +
  `modules/RotationConfig.lua`: one small row saying what to cast now and the
  two after it, with a sweep on a DoT close enough to falling off to be worth
  refreshing, your key binding in the corner, and — if you want it — a glow on
  the real button on your spell bar, so the answer is where your eyes already
  are. It **advises and never casts**: there is no button to click and no macro
  behind it, which is deliberate and is also the rule on some servers. It does
  not guess at the future either — the row is the highest thing in the priority
  whose conditions are true at this instant, and the two behind it, because
  three casts of travel time and latency into the future is where addons like
  this stop being right. The priority is yours to drag and to switch entries off
  in: whether Shadow Word: Death belongs above Mind Blast depends on your gear
  and on whether the fight has adds, and this addon does not get to settle that
  argument. Three things it would be lying without — Mind Blast is held until
  Shadow Weaving is at five stacks, Vampiric Embrace is offered only where a
  filler would have gone and only on an elite or once the fight has run long, so
  it stays up on a boss without ever costing you a cast, and Shadow Word: Death
  is greyed while the backlash guard says it would kill you. Something you
  cannot pay for, cannot reach or would die to is greyed rather than dropped, so
  the row never re-orders itself for a reason that is nowhere on screen. It says
  nothing in the warning area and it is off after a fresh install.
  `/sp rotation status` prints every condition and what the game answered, in
  priority order.

- **The Shadow Word: Death backlash guard**, `modules/SWDeath.lua` +
  `modules/SWDeathConfig.lua`: unless it lands the killing blow, Shadow Word:
  Death hits you back for exactly what it hit the target for, and it is the only
  spell in the book that can kill the priest who cast it. While it is off
  cooldown, you are in combat, you have something hostile targeted and your
  health is under what the backlash would cost, you get a message and a red wash
  on whichever bar is drawing the spell. It warns and never blocks — breaking a
  fear with it, or dying on purpose, is a real play. It does not pretend to
  predict the hit either: that would need spell power, the target's resistance
  and a crit roll nobody can see, so it works from a bound — a quarter of your
  maximum health, which the biggest backlash you have actually taken this
  session can only ever raise. Nothing is kept across logins, because gear
  changes. The same measurement answers the other half: optionally, that the
  target will die to the cast, and a killing blow costs nothing at all — judged
  against the smallest backlash seen rather than against a percentage, because
  ten percent of a boss is thousands of hit points. Only a measured number ever
  silences the danger warning: a kill cue that is wrong costs a global, and a
  silence that is wrong costs a death. `/sp swd status` names which of the four
  conditions is stopping it firing, and `/sp swd log` prints the raw combat log
  lines the measurement is built from.

- **The Mind Flay clip guard**, `modules/MindFlay.lua` +
  `modules/MindFlayConfig.lua`: Mind Flay is the one spell in the book where
  *stopping* it costs damage. The damage lands on the tick and nowhere else, so
  a channel cut a tenth of a second before its third tick did two thirds of the
  damage for nine tenths of the time. Every shadow priest clips — it is how a
  Mind Blast gets out the moment it comes back — so the question is never "did I
  clip" but "did I clip a tick I had already paid for", and that is what you are
  now told: a message the instant a channel ends too close to a tick, and a
  count at the end of the fight of what the clipping cost. A channel that ran
  past its last tick never warns however early you stopped it, and neither does
  one a stun or the target's death ended. The grace is yours to set and defaults
  to 300ms. The cast bars can be switched off entirely and the guard keeps
  working. `/sp flay`, and `/sp flay status` prints every number each judgement
  was made from — which is the only way to look at a warning that did *not*
  fire.

- **The Shadowfiend panel**, `modules/Shadowfiend.lua` +
  `modules/ShadowfiendConfig.lua`: every shadow WeakAura set tracks the
  Shadowfiend cooldown and stops there, and so does this addon already. What
  none of them show is the fifteen seconds after you press it, which is where
  three things go wrong that you only notice afterwards, when your mana bar has
  not moved: it was summoned with nothing to attack, it died early to area
  damage, or it simply got fewer swings than it should. So: one panel, on screen
  only while the fiend is out, with a bar draining the seconds left, a bar under
  it carrying the fiend's own health, and a line with the swings it has landed
  and the mana it has returned. One chat line at the end says what the whole
  summon paid, and two optional messages — one while it is out and landing
  nothing, which is the failure you can still fix, and one after a summon that
  went badly — never both at once. A summon that ended because *you* died, or
  because of a loading screen, says nothing: none of those is something you did
  wrong. The mana figure is gross, for the mana battery's reason. A client with
  no readable combat log keeps the timer and the health and leaves the swings
  and the mana off rather than drawing zeroes it did not measure. `/sp fiend`,
  `/sp fiend status` for every number behind each judgement, `/sp fiend log` for
  the raw swings and energizes.

- **The mana tick bar**, `modules/ManaTick.lua` + `modules/ManaTickConfig.lua`:
  the five second rule and the two second mana tick as one bar — the rule drains
  across it after every spend, the next tick fills as a strip along the bottom
  edge, and once the five seconds are up the tick gets the whole bar. It writes
  what your last cast cost, what one tick is worth and the seconds left on
  Spirit Tap, which is the number a levelling shadow priest is really deciding
  on. It does not claim regeneration stops for five seconds, because for a
  priest it does not: Meditation lets some of it through and Spirit Tap lets
  more, so the red fill means the full rate is not back yet rather than that
  nothing is coming in, and the tick strip keeps running underneath it. The bar
  turns green whenever something is letting mana through while you cast — a
  talent, an Innervate, or a trinket the addon has never heard of, because that
  is judged from your actual regeneration rather than from a list. The tick
  itself is measured from your own mana, with potions, drinks and Shadowfiend
  left out of that measurement, and it keeps its phase at full mana where a tick
  lands and gains nothing. At full mana standing still there is no bar at all.
  `/sp mana`, `/sp mana test` to place it without waiting for a fight, and
  `/sp mana status` for every measurement raw, including the last gain it threw
  away and why.

- **Spell hit against the cap**, `modules/HitCap.lua` +
  `modules/HitCapConfig.lua`: a shadow spell that misses does nothing at all —
  no damage, no DoT, no mana for the party, no Shadow Weaving stack — so hit is
  the first stat, and the cap you need off gear is not the one on your character
  sheet, because your own talents move it and nothing in the game adds the two
  together. `/sp hit` shows what your gear is worth, what your talents are
  worth, the total, the cap against a boss and against an even-level target, and
  how far short you are in percent and in rating. Every figure is read from the
  game and every reading is checked: where the client cannot answer you get a
  dash and a line saying so, never a number that would be wrong — you gem
  against it. Shadow Focus is counted twice on purpose, once from your talent
  ranks and once from what the client reports, and you are told when the two
  disagree instead of the addon quietly picking one. Misery is read off its own
  tooltip rather than assumed, and never counted into the total, because it only
  applies to a target already carrying your DoT. The cap itself is the one thing
  that cannot be read out of the game, so the page says where it came from.
  There is an optional line on screen for the hour you spend swapping gear,
  which hides itself again once you are capped. Off by default, and it
  recommends no gear: it says where you stand and stops. `/sp hit status` prints
  every raw reading, the talent walk and the arithmetic in full.

- **The wand button grows a swing timer.** The pulsing border says the shots are
  going out and cannot say *when the next one lands*, which is the number with a
  decision on it: a cast started just before a shot throws that shot away. So
  there is now a bar under the button, filling from one shot to the next, with
  the shot speed on it. The speed starts from what the game reports and is then
  corrected by the gap between the shots that actually happened, so haste and a
  new wand need no setting from you and land immediately. A run that stops
  without saying so — out of range, or a target that died — empties the bar
  rather than leaving it ticking. Nothing to switch on beyond the bar itself,
  and on a client that reports no wand speed and has no readable combat log
  there is no bar rather than an empty one, with the page saying why.
  `/sp wand status` prints both speeds, the gaps between the last shots and
  which one was thrown away and why.

This mod has no additional files