Shadow Priest
A helper addon built for one spec, on one client: shadow priest on the Burning Crusade Anniversary realms.
Shadow Priest is not another UI suite. It does not draw your unit frames, it does not re-skin your bags, and it has no options for classes it will never support. It adds only what a shadow priest actually needs while playing: the timers, bars and buttons that decide whether the next Mind Flay is worth casting. It is built to sit next to Shadowed Unit Frames, which keeps the unit frames this addon deliberately never draws — but it does not need it.
Every feature is its own switchable module. The spell bars that replace the hidden Blizzard action bars, the rotation advisor, the aggro warnings, the cast bars and the Mind Flay clip guard, the DoT, priest-debuff and cooldown rows with their clip guard and uptime report, the shadow debuff panel, the mana battery, the Shadowfiend panel, the mana tick bar, the cooldown alerts, the Shadow Word: Death backlash guard, the consumable bar, the buff bars, the buff check, the Shadowform button, the wand button and its swing timer, the mount button, the experience bar, the spell hit readout, and the system bar that replaces the hidden micro menu. Turn off what you do not want; nothing else notices.
Requirements
| Client | The Burning Crusade Classic / Anniversary realms, interface 20506 (2.5.6) |
| Required addons | None |
| Recommended companion | Shadowed Unit Frames — TBC Anniversary fork, version 6.0.0 or newer |
Shadow Priest runs on its own. Every module draws its own frames and reads the game's own API, so nothing here is switched off, blocked or half-working when you run no unit frame addon at all.
Shadowed Unit Frames is a recommended companion, not a requirement. This
addon deliberately does not draw unit frames, so if you want player, target and
party frames with auras and cast bars on them, that is the addon to pair it
with — and the build it is written against is the
TBC Anniversary fork,
Curse project 1432720, version 6.0.0 or newer. The only place the two actually
touch is one convenience checkbox on the cast bar page, which switches Shadowed
Unit Frames' own cast bar off for a unit so the two do not sit on screen
together. With any other Shadowed Unit Frames — upstream, retail, a different
fork — or with none installed, that one checkbox is simply unavailable and the
rest of the addon carries on unchanged.
Shadow Priest recognises the fork at login by its own project ID, not just its version number, and says in chat what it found. That message is information, not an error.
What is in this release
- Spell bars. Three bars of buttons — Shadow, Holy and Discipline — in place
of the Blizzard action bars this addon hides. There is no list to fill in:
each bar follows a page of your spellbook and takes every spell on it at the
highest rank you know, so a freshly trained spell turns up by itself and a
respec drops what it removed. A little badge marks a spell your trainer has a
new rank of. Drag a button to move it, or open one list and drag the whole
order into shape; every button takes a key binding of its own. Only the Shadow
bar is on to begin with —
/sp barsswitches on the other two, moves them all at once, lines them up and spaces them evenly. Each bar sits in a Warcraft frame of its own — an ornament at the top left, another at the bottom right and a fine rail along the top and the bottom — built around your bar rather than the other way round: no panel behind your icons, and nothing grows when the bar does, so three bars and a custom bar on screen together still read as bars rather than as furniture. - A custom bar, and it is the other way round. Nothing is scanned for this one: it holds what you drop on it, spells and items out of your bags. Pick something up in your spellbook or a bag and let go over the bar, or over the box on its page — a drop onto a button lands in that button's place. An item's slot counts what is left, goes red at zero and greys out when you run out. Same grid, same drag-to-reorder, same key bindings, same alignment pass as the other three, plus a name of your own.
- Rotation advisor. One small row: 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 optionally a glow on the real button on your
spell bar so you never have to look away from the bars. It advises and never
casts — no button to click, no macro behind it — which is deliberate as well
as being 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 right now,
and the two behind it. The priority is yours to drag and to switch entries off
in, because whether Shadow Word: Death belongs above Mind Blast depends on
gear and on whether the fight has adds. Three things it carries because the
rotation is a lie without them: 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 costing you a cast; and Shadow Word: Death is greyed while the
backlash guard says it would kill you. Something you cannot afford, cannot
reach or would die to is greyed rather than dropped, so the row never
re-orders itself for a reason you cannot see. Nothing in the game says a mob
is about to die, so it will suggest a fifteen second DoT on something at three
percent — the page says so rather than guessing. Off by default.
/sp rotation, and/sp rotation statusprints every condition and what the game answered. - Cast bars. One for you, one for your target, one for your focus, each
placed and sized on its own. A cast fills, a channel drains, Mind Flay is
marked off at every tick, and the time a hit knocked off the end is drawn in
red at the tail of the bar, so you can see what the pushback cost you. Your
own bar carries a latency strip at the end, and a tick hands the job of the
Shadowed Unit Frames or Blizzard cast bar over to this one. Each bar wears a
frame: rails above and below the fill, a chevron where the spell icon hands
over to the bar, a closing cap at the far end and a square ornament around the
icon — and the Mind Flay ticks become a spear with an ornament at each end
instead of a white line. Move the icon to the other side and the frame turns
round with it.
/sp cast. - Mind Flay clip guard. Mind Flay is the one spell 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. You get a message the instant a channel ends too close to
a tick, and a count at the end of the fight of what it 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.
/sp flay. - DoT timers. Three rows of icons: your DoTs — clickable, counting down, and
going dark the moment one falls off — the debuffs your talents put on the
target, and your cooldowns. There is no list to maintain: the rows learn what
you cast and remember it.
/sp dots. - Shadow debuff panel. Shadow Weaving's stacks, Misery and — if you ask for
it — the warlock's Curse of Shadow, drawn as a panel rather than another row
of timers: the stack count at a size you can read without looking away, full
stacks in a colour of its own rather than one more digit, and a wash over
whatever is not on your target, tinted differently when it is not yours to
put back. Anything it draws leaves the DoT rows while it is there, so nothing
is on screen twice.
/sp weave. - Clip guard and uptime report. Refreshing Shadow Word: Pain with nine
seconds left does not roll them forward on this client, it throws them away —
for a global cooldown and a fifth of a mana bar. So an early refresh is said
out loud: which spell, and how many seconds went with it. Then at the end of
the fight, per DoT: what percentage of the time it was up, how many casts were
early and what they cost, and the same per target. Uptime is measured against
each mob's own life rather than against the fight, because a DoT cannot be up
on something that is dead. It follows the list the DoT rows already
discovered, prints itself only after fights worth reading about, and
/sp uptimeasks for it any time./sp uptime. - Mana battery. The half of a shadow priest's job that no damage meter
breaks out: Vampiric Touch feeding your party mana and Vampiric Embrace
healing them, both out of your shadow damage. One panel with a row each —
seconds left, how much of this fight it has been up for, and what it has
really paid — and your party underneath, a line per member, with what each of
them got. Out of combat the numbers stay put, labelled as the last fight. The
mana figure is gross, because the client never says when mana went to somebody
already full; the healing figure is what actually landed, with the
overhealing behind it. Switch on the reminder and you are told when Embrace
has lapsed.
/sp vamp. - Shadowfiend while it is out. Every shadow WeakAura set tracks the 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. One panel, on screen only while the fiend is out: a bar
draining the seconds left, a bar under it with 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 saying 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. They never both appear at once. 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. The panel can be unlocked,
placed and styled long before level 66 — which is the only time there is any
leisure to do it.
/sp fiend. - Mana tick bar. 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 — 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, and the bar turns green whenever something is letting
mana through while you cast, including a trinket it has never heard of. The
tick is measured from your own mana, and potions, drinks and Shadowfiend are
left out of that measurement. At full mana standing still there is no bar.
/sp mana. - Mana flow bar. The other mana question: not when the next tick lands, but
whether you are winning. It does not fill — it sits in the middle and grows
out of the centre, red to the left for mana leaving and 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. It draws the last few seconds rather than the whole
fight, so it returns to the middle on its own instead of ending up pinned at
one end and saying nothing; the number on the right is the 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, so the width means the same amount at
every level, and anything bigger than the bar can show gets a bright cap
rather than a silent peg. A buff dropping or a gear swap is not drawn as a
spend. Its own bar, its own position and colours: run it instead of the mana
tick bar, beside it, or not at all.
/sp flow. - Cooldown alerts. The moment a cooldown comes back, its icon appears big in
the middle of the screen — animated in, named, glowing, with a sound if you
want one — and can stay there faded for as long as the spell is still ready.
It goes where you are already looking instead of where you would have to
glance. Which cooldowns get one is yours to tick: they are learned as you cast
them and arrive switched off, so nothing shouts at you uninvited.
/sp ready. - Shadow Word: Death backlash guard. 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 only warns and it never blocks
— breaking a fear with it, or dying on purpose, is a real thing to do. It does
not pretend to predict the hit either: that needs spell power, the target's
resistance and a crit roll nobody can see, so it works from a bound — a
quarter of your 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, when the
target will die to the cast — and a killing blow costs nothing at all — judged
against the smallest backlash seen rather than a percentage. Only a measured
number ever silences the danger warning.
/sp swd,/sp swd statusnames which of the four conditions is stopping it firing, and/sp swd logprints the raw combat log lines behind the measurement. - Aggro warnings. Two levels, in words across the screen and as a red band
around its edges: one as your threat closes on the tank's, a louder and
thicker one the moment the mob actually turns on you. Both levels have their
own words, font, size, colour, sound and band, so the second one can look
nothing like the first. Solo it does nothing at all.
/sp aggro, and/sp warnplaces the message. - Buff bars. Power Word: Fortitude, Inner Fire and Shadow Protection come
off the spell bars and become clickable icons that count down, going dark with
a pulsing border the moment one drops. The group buffs get a second row under
them: Prayer of Fortitude and Prayer of Shadow Protection, each showing how
many people in your party or raid have not got it and how many casts your
reagents are good for — and saying so out loud when somebody is missing one.
Anyone carrying the single-target version counts as buffed; anyone offline,
dead or out of range is not counted against you. Nothing to maintain: any buff
you keep up that lasts five minutes or more joins a row by itself. The group
warning stays quiet in cities, on flight paths, in battlegrounds and arenas,
and — if you ask — anywhere outside a dungeon or a raid.
/sp buffs. - Buff check. Before the pull,
/sp buffcheckor a shift-click on the minimap button opens a small window of everybody in the group missing Fortitude or Shadow Protection, one bar per member in their class colour. Click a name to buff them, right click for Shadow Protection, or press one of the two Prayer buttons at the bottom to buff the next party that needs it. Out of range, dead and offline members stay listed and say why. It can close itself once everybody is buffed. - Consumable bar. One button per kind of consumable — healing potions, mana
potions, food, drink, first aid, other potions, flasks, and elixirs if you want
them — each showing the best one you are carrying, the number left and the
cooldown sweeping over it. Only your best food and your best water, not the
leftovers behind them — and when the client's idea of best is not yours, hover
the button and the rest of that group opens as a row you can click straight
from. Untick an item to keep it off the bar, or pin one to hold the slot while
it lasts. Nothing to maintain: it reads your bags and follows what is in them.
/sp cons. - Shadowform button. The one spell that has to be up gets a button to
itself, off the Shadow bar and wherever you actually look. While you are not
in the form it fades and a red border pulses around it; it can disappear
entirely once the form is up. Its own key binding, its own size and opacity,
and it can be placed, styled and previewed before you have learned the spell —
it simply does nothing when clicked until you do, and the key you bound now
starts working the moment you train it.
/sp form. - Wand button, with a swing timer. Your wand as one icon, wherever you want
it, with a key binding of its own and a border that pulses while the shots are
going out — the one thing nothing else tells you once the wand is off your
action bars. Under it, a bar filling from one shot to the next with the shot
speed on it, because a cast started just before a shot throws that shot away.
The speed comes from the game and is corrected by what actually happens, so
haste and a new wand need no setting. No list to keep and nothing to switch
on: equip a wand and the button is there, put it away and it is not.
/sp wand. - Mount button. One button with a key binding of its own, carrying whatever
mount you drop on it — drag it out of your bags, or pick the item up and click
the button, or choose it from the list in the options window. Which mount you
ride is the one thing here the addon will not decide for you, so an empty
button stays on screen faded until you have filled it.
/sp mount. - System bar. The client's own panels as one row of buttons, in place of the
micro menu this addon hides: the game menu, your character sheet, the
spellbook, talents, the quest log, social, the map, the help request form and
the key ring, plus your latency as a number that warms through amber to a
muted red as it climbs. It sits in a strip of forged metal with an ornament
at each end, a slot around every button and a capsule holding the latency at
the far end — cut from one slot and repeated once per button, so four buttons
or ten close the strip with no seam. Every button's tooltip tells you which
key does the same job.
/sp system. - Experience bar. A bar you can put anywhere, in place of the Blizzard one
this addon hides, with your rested experience running ahead of the fill as a
lighter strip. Pick what it writes on itself and what it says under the mouse,
from the bare percentage to the full count; the tooltip adds your level, how
much rest you have banked, how long you have played on this level and in
total, and an estimate of how much longer the next one will take. It gets a
frame of its own too — a fine rail above and below and an ornament at each
end — and the fill inside it can follow the same artwork: warm bronze for
Horde, cold blue for Alliance, with your own colours kept untouched
underneath for the moment you switch it back.
/sp xp. - Spell hit against the cap. 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 — your own talents move it and nothing in the game adds the two
together. This does: 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. Green when you are there. Every
figure is read from the game and every reading is checked, so where the client
cannot answer you get a dash and an explanation rather than a number that
would be wrong — which matters, because you gem against it. Shadow Focus is
read twice, from the client and from the talent's own rank, and the higher of
the two stands: this client reports nothing for a 5/5 Shadow Focus, and
believing it would send you gemming for 202 rating when your gear only has to
carry 76. A Draenei in your party is detected rather than asked about. Off by default, with an
optional line on screen for the hour you spend swapping gear that hides itself
once you are capped. It recommends no gear and never will: it says where you
stand and stops.
/sp hit, and/sp hit statusprints everything the answer was built from. - What to gear for next, and whether that item is an upgrade. The hit cap is
one row of a larger answer: every stat you have, in the order a shadow priest
wants it, with the one rule that reorders it worked out for you — hit is worth
more than anything else below the cap and nothing at all above it, so it leads
while it is short and falls behind spell power the moment it is not. The top
of the page is one sentence: the first thing in that order that is genuinely
short. Then point at an item — your bags, a vendor, a chat link — and its
tooltip says whether it beats what you are wearing, which stats moved, and
what the cap does to that: how much of its hit is wasted if it takes you over,
how far under it drops you if it does not. Rings and trinkets are judged
against the weaker of the two you wear, a two-hander against your main hand
and off hand together. Tick
Mana is a problem for meand Intellect, Spirit and MP5 stop being footnotes. Everything is read from the game, the few things that cannot be are stated as assumptions, and it recommends no gear: it says what the next point is worth and stops./sp stat, with/sp stat statusand/sp stat itembehind it. - One shared warning area. Aggro, an expiring DoT, a clipped channel, a
shadow multiplier that is missing, a lapsed Vampiric Embrace, a Shadowfiend
landing nothing, a Shadow Word: Death that would kill you and a missing group
buff all say so in the same place, so there is one thing to position rather
than a banner per feature. The loudest message wins the top slot, and two
things about one spell can never take two of the three slots to contradict
each other.
/sp warn. - Drag to reorder, everywhere. Every list here that has an order — the spells on each bar, the custom bar's own contents, the DoT and cooldown rows, the shadow debuff panel, both buff rows, the consumable groups, the system bar's buttons, the rotation advisor's priority — opens the same window: what the bar really draws, numbered, saying where each entry will land, dragged into place with the bar following along as you let go.
- Every setting as one string. General → Import and export writes
everything the addon owns — every module's settings and whether it is on,
every bar's layout, the custom bar's contents, the keys bound to them in each
talent build, where the warning area and the settings window sit — into one
line of text.
Ctrl+Cit into a file, carry it to another character, hand it to another priest. Pasting one back takes three steps — paste, Check it, Overwrite my settings — and the check prints what the string holds before anything is replaced; what it replaced stays behind an undo button for the rest of your session. A string cut short on the way through a chat window says so instead of importing half of itself./sp export,/sp import. - Module framework. Every feature is a separate, independently switchable module. Turn off what you do not want; nothing else notices.
- One configuration window for the whole addon: movable, resizable, with a
tree down the left carrying every module and a page per bar, unit and row.
/spopens it, and every per-feature command opens it on that feature's own page. It still appears under Game Menu → Options → AddOns → Shadow Priest, but that entry is only a way in — settings do not live in two places. - Search the settings. A box above the tree narrows it to what matches, and
it looks inside the pages rather than only at their names, so
opacityfinds every page with an opacity slider on it whether or not the word is in its title. Two words both have to be found and neither has to be next to the other, socast colouris one page wherecastis eight.Enteropens the first one,Escapeclears it, and closing the window clears it too. - A Warcraft frame around all of it — or none. One dropdown on
General → Lookdecides the artwork every framed thing here wears: Horde, Alliance, or your own faction, following the character you are on. The windows themselves wear it too — corners, a crest or a medallion on the top band, gem nodes down the sides, and an inside drawn from the same palette — with the straight runs repeating rather than stretching, so dragging a window wider gives you more of the pattern instead of the same pattern pulled thin. The ornaments stay one size at every window size, and Frame scale sets it. The fourth answer is No frame, which draws no artwork at all and gives you back the bare bars and the flat window — and it switches nothing off doing it, so every frame tick and every scale you set is exactly where you left it if you pick a side again. Nothing here needs a/reload. - Your fonts, textures and sounds. Anything that draws text, a bar or plays an alert reads the shared media list, so whatever SharedMedia addons you already run turns up in the dropdowns.
- Per-character-account settings saved between sessions.
- Chat commands for everything, so you never have to open a panel mid-raid.
- Combat safety. Modules that touch protected frames queue their work and apply it the moment you leave combat, instead of throwing errors at you.
Division of labour
Shadow Priest never draws player, target or party frames, nor the auras and cast bars that sit on them. That is not an omission it patches over: it is the line the addon keeps, and it is why it stays small and why it never fights whatever unit frame addon you already run.
It does draw cast bars and DoT timers — they are free-standing, placed and sized wherever you want them, and they are not a unit frame with pieces taken off it. Where that would put two of the same bar on screen, one tick on the cast bar page hands the job over from your unit frames rather than either of them guessing.
When that addon is Shadowed Unit Frames, the two fit together with nothing to configure — SUF owns the frames, including hiding the Blizzard ones, and Shadow Priest owns everything in this list. If a shadow priest feature needs something the unit frames do not expose, the fix goes into the fork, not into a second copy of the same code here.
Chat commands
| Command | What it does |
|---|---|
/sp |
open the configuration window |
/sp modules |
list every module and whether it is on, off or blocked |
/sp enable <module> |
switch a module on |
/sp disable <module> |
switch a module off |
/sp toggle <module> |
flip a module |
/sp version |
show the addon version and whether Shadowed Unit Frames was found |
/sp reset |
restore every setting to its default |
/sp export |
your settings as one string, ready to copy out |
/sp import |
paste a settings string back in |
/sp buffcheck |
open the buff check: who in the group is missing Fortitude or Shadow Protection |
Every feature has a command of its own, which opens the configuration window on that feature's page:
| Command | Feature |
|---|---|
/sp bars |
the spell bars |
/sp cast |
the cast bars |
/sp flay |
the Mind Flay clip guard |
/sp dots |
the DoT, debuff and cooldown rows |
/sp uptime |
the clip guard and the uptime report |
/sp weave |
the shadow debuff panel |
/sp vamp |
the mana battery |
/sp fiend |
the Shadowfiend panel |
/sp mana |
the mana tick bar |
/sp flow |
the mana flow bar |
/sp ready |
the cooldown alerts |
/sp aggro |
the aggro warnings |
/sp buffs |
the buff bars |
/sp cons |
the consumable bar |
/sp form |
the Shadowform button |
/sp wand |
the wand button |
/sp mount |
the mount button |
/sp system |
the system bar |
/sp xp |
the experience bar |
/sp hit |
spell hit against the cap |
/sp stat |
the stat priority and the upgrade check |
/sp rotation |
the rotation advisor |
/sp swd |
the Shadow Word: Death backlash guard |
Most of them take lock and unlock to drag the thing into place and test to
see what it looks like without waiting for the fight that would show you, and
each has a word of its own — status, scan, items, missing, debug —
that prints what the game is telling the addon. That is what to paste into a bug
report when something does not appear. /sp warn places the shared warning area
(lock, unlock, reset, test), /sp frames says which Blizzard frames
were hidden and which of their keys were silenced, and /sp keys names anything
on screen that is quietly swallowing your key presses.
/shadowpriest works as an alias for /sp.
Installation
Extract this zip so the folder lands here:
<WoW>/_anniversary_/Interface/AddOns/ShadowPriest
The folder must be named exactly ShadowPriest, or the client will ignore the
addon. That is the whole installation — nothing else has to be present.
Optionally, install the Shadowed Unit Frames TBC Anniversary fork (version 6.0.0 or newer) alongside it for the unit frames this addon does not draw.
Feedback
Bug reports and suggestions are welcome. Please include your client locale, the
unit frame addon and version you run if you run one, and what you expected to
happen — and if you hit a Lua error, run /console scriptErrors 1 (or install BugSack) and paste the
error text.

