Updated: 03-06-12 05:50 PM
File Info
Updated:03-06-12 05:50 PM
Created:03-06-12 05:50 PM
Categories:Priest, Casting Bars, Cooldowns, DPS, Combat Mods, PvP, Arena, BattleGrounds, Raid Mods

Shadow Priest DoT Timer  Popular! (More than 5000 hits)

Version: 1.2b
by: Kressilac [More]

== What The Addon Accomplishes ==
I've used Danina's Shadow Timer addon for a while and liked it enough to tweak it for my own raiding use. Here's the gist of what I tried to solve.
Credit has to go to Danina for the initial inspiration. The main update page for this addon is on located here:

When should I refresh my DoTs. With Power Torrent, DMC Volcano, Necormantic Focus, Moonwell Challice, Volcanic Potion, Heroism, Empowered Shadows and Dark Evangelism I never quite knew when the right time was to refresh a DoT, namely DP and VT. That's where this addon comes into play.

Most procs give you an amount of a stat for a duration. For instance, Volcanic Potion grants a buff called Volcanic Power which gives 1200 Int for 25 seconds. Moonwell Chalice gives an amount of Mastery for 12 seconds. You get the idea. So tells you to refresh your dots with procs. 20 seconds into a fight, procs feel random with no real way to discern if a proc is a DPS upgrade. What I've done is use 378-391 scaling numbers to convert a buff to it's Int equivalency and created what I refer to as a "buff score". As of 1.0c all of this data is configurable in the options panel under Blizzard's Interface-AddOns tab.

* Volcanic Potion is worth 1200
* Volcanic Destruction 1600
* Power Torrent 500
* Heroism (128 * 30 * .51) or 1958
* %damage from Empowered Shadows and Dark Evangelism is treated as a 1% buff to Int per 1% damage increase.
* Moonwell Chalice (1700 * .48) or 816
* Necromantic Focus (39 * .51) * stacks or 20 to 200

New 4.3 Proc effects.
* Combat Mind 88 Int stacks 10 times.
* Velocity 3278 Haste

The key is that when you cast DP or VT, the current buff score is copied to the top of the icon showing its cooldown. You can then use that number to figure out if refreshing a DoT would be a DPS increase of decrease. Of course, refreshing seconds before a proc wears off is always beneficial and that's the next enhancement for me to make. I want to get to the point where you see a cooldown bar for your buff score. The buff score is not intended to be an accurate reflection of actual damage numbers. It's there so that you can judge the relative difference between when you first cast a DoT and your current buff level. Higher numbers recast. Lower numbers wait until you have to refresh it.

== Slash Commands ==
* /spdt (scale1 | scale2 | scale3 | scale4 | scale5 | scale6)
* /spdt (show | hide | reset | configmode | noconfigmode | options | clear)

=== Options: ===
* show: Show the addon.
* hide: Prevents the addon from displaying on the screen. Useful when you switch to Disc/Holy
* reset: Used to recycle the display of the addon. Can help if there's a glitch in the display.
* configmode: Enables a frame around the addon's visible elements so that the entire frame can be positioned.
* noconfigmode: Enables the addon for play and removes the frame created during configmode.
* scale1 - 6: Resizes the visible elements of the addon.
* options: Displays the option panel in the Blizzard Interface Option screen.
* clear: Clears the internal mob list that tracks DoTs on multiple targets.

== Recent Enhancements from comments: ==
* Add an icon for Mind Blast Cooldown if I do more work on this before MoP.
* Add a stack counter for Evangelism

== Future enhancements: ==
* Add a coloring option to color the buff scores above an icon when recasting is a DPS increase or decrease.

== Ruled out Enhancements: ==
* Adding a timer for buff score - In practice I didn't find the information to be useful because when you added up the buffs, the score might change 5 times in less than a second making the velocity of the information useless in an already fast moving UI addon.

Post A Reply Comment Options
Unread 04-12-16, 08:16 AM  
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Exclamation Error in current version :(

Hi, First off, thanks for keeping this addon going. My favorite class/spec! <3

Date: 2016-04-12 07:14:18
ID: 1
Error occured in: Global
Count: 1
Message: ...AddOns\ShadowPriestDoTTimer\ShadowPriestDoTTimer.lua line 327:
attempt to perform arithmetic on upvalue 'castTimeVT' (a nil value)
[C]: ?
...AddOns\ShadowPriestDoTTimer\ShadowPriestDoTTimer.lua:1146: ShadowPriestDoTTimerFrame_OnUpdate()
[string "*:OnUpdate"]:1:
[string "*:OnUpdate"]:1
errMsg = "...AddOns\ShadowPriestDoTTimer\ShadowPriestDoTTimer.lua:327: attempt to perform arithmetic on upvalue 'castTimeVT' (a nil value)"
isTSMError = false
tsmErrMsg = nil
AceGUI = <table> {
objPools = <table> {
RegisterAsContainer = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:521
RegisterWidgetType = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:559
WidgetBase = <table> {
RegisterAsWidget = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:537
counts = <table> {
LayoutRegistry = <table> {
GetLayout = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:583
GetWidgetVersion = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:613
Create = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:172
GetWidgetCount = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:607
GetNextWidgetNum = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:596
WidgetRegistry = <table> {
WidgetVersions = <table> {
RegisterLayout = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:573
Release = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:206
ClearFocus = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:257
WidgetContainerBase = <table> {
SetFocus = <function> defined @Interface\AddOns\TomTom\libs\AceGUI-3.0\AceGUI-3.0.lua:247
TSM = <table> {
Operations = <table> {
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:398
_author = "Sapu94, Bart39"
DeleteCustomPriceSource = <function> defined @Interface\AddOns\TradeSkillMaster\CoreAPI\Prices.lua:56
EnableModule = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:363
modules = <table> {
baseName = "TradeSkillMaster"
IterateEmbeds = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:473
CreateGroupTree = <function> defined @Interface\AddOns\TradeSkillMaster\GUI\TSMFrames\GroupTree.lua:291
SecureHookScript = <function> defined @Interface\AddOns\Broker_Garrison\Libs\AceHook-3.0\AceHook-3.0.lua:410
GetAuctionPlayer = <function> defined @Interface\AddOns\TradeSkillMaster\GUI\AuctionFrame.lua:45
RawHookScript = <function> defined @Interface\AddOns\Broker_Garrison\Libs\AceHook-3.0\AceHook-3.0.lua:395
_desc = "Core addon for the TradeSkillMaster suite. Does nothing without modules installed."
Printf = <function> defined @Interface\AddOns\TradeSkillMaster\CoreAPI\Modules.lua:147
SetDefaultModulePrototype = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:440
defaultModuleState = true
IsEnabled = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:482
Delay = <table> {
OnTSMDBShutdown = <function> defined @Interface\AddOns\TradeSkillMaster\TradeSkillMaster.lua:399
operations = <table> {
RegisterModule = <function> defined @Interface\AddOns\TradeSkillMaster\TradeSkillMaster.lua:328
toggleBankUI = <function> defined @Interface\AddOns\TradeSkillMaster\GUI\BankUI.lua:307
ShowConfigError = <function> defined @Interface\AddOns\TradeSkillMaster\Debug\ErrorHandler.lua:79
RegisterMessage = <function> defined @Interface\AddOns\LibSharedMedia-3.0\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
UnregisterMessage = <function> defined @Interface\AddOns\LibSharedMedia-3.0\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
PrintVersion = <function> defined @Interface\AddOns\TradeSkillMaster\TradeSkillMaster.lua:733
hooks = <table> {
getBankTabs = <function> defined @Interface\AddOns\TradeSkillMaster\GUI\BankUI.lua:325
Groups = <table> {
LDBIcon = <table> {
db = <table> {
LOG_INFO = <function> defined @Interface\AddOns\TradeSkillMaster\Debug\Logging.lua:376
LOG_ERR = <function> defined @Interface\AddOns\TradeS
MoncaiCompare, v6.2.0
Swatter, v5.21f.5579 (SanctimoniousSwamprat)
NPCScan, v6.2.4.1
NPCScanAutoAdd, v2.3
NPCScanOverlay, v6.2.4.1
NPCScanOverlayBroker, v1.2.6
AckisRecipeList, v6.2.3.3
AckisRecipeListQuickScan, v6.2.0.1
ACP, v3.4.24
Atlas, v1.32.00
AtlasBattlegrounds, v1.32.00
AtlasBurningCrusade, v1.32.00
AtlasCataclysm, v1.32.00
AtlasClassicWoW, v1.32.00
AtlasDungeonLocs, v1.32.00
AtlasMistsofPandaria, v1.32.00
AtlasOutdoorRaids, v1.32.00
AtlasScenarios, v1.32.00
AtlasTransportation, v1.32.00
AtlasWorldEvents, v3.13
AtlasWorldofDraenor, v1.32.00
AtlasWrathoftheLichKing, v1.32.00
AtlasLoot, vv8.00.72
AtlasMajorCitiesEnhanced, vv1.07
AutoRepair, v
Babylonian, v5.1.DEV.332(/embedded)
Badapples, v6.0.4.13
BagBrother, v
Bagnon, v6.2.6
Bazooka, vv2.6.1
BrokerDurabilityInfo, v1.23
BrokerGarrison, v1.8.3
BrokerLocation, v1.14
Configator, v5.1.DEV.376(/embedded)
Critline, v4.6.6
CritlineAuraMonitor, v4.6.6
DBMCore, v
DBMDefaultSkin, v
DBMGarrisonInvasions, v
DBMStatusBarTimers, v
Decursive, v2.7.4.4
Dominos, v6.2.9
DominosActionSets, v
DominosCast, v
DominosEncounter, v
DominosRoll, v
DominosXP, v
ElkBuffBars, v2.4.2-185
FlightMap, v6.1.0.0
FollowerGearOptimizer, v1.33
GarrisonMissionManager, vv39
GarrisonMissonEnhanced, v2.6.2
Gatherer, v5.0.0
GatherMate2, v1.35.6
GatherMateSharing, vv1.9
Genie, v6.0.3.1
GenieLDB, v6.0.3.1
GenieUI, v6.0.3.1
GlobalIgnoreList, v6.2.11
HandyNotes, vv1.4.6
HandyNotesDraenorTreasures, v1.16
HandyNotesTreasureHunter, v1
KuiNameplates, v260
KuiNameplatesAuras, v
KuiSpellListConfig, v
LibExtraTip, v5.12.DEV.390(/embedded)
LibSharedMedia30, v3.0-93
LoggerHead, v183
MacroToolkit, vv6.2.0.2
MapCoords, v0.21
MasterPlan, v0.90
MasterPlanA, vA
MissionComplete, vv1.3
MogIt, v3.5.9
MogItAccessories, v
MoveAnything, v15.3.4
Omen, v3.1.11
OmniCC, v6.2.1
Outfitter, v5.11
Parrot, vv1.12.0
Pawn, v1.9.26
PetBattleTeams, v3.2.9
Postal, vv3.5.6
Quartz, v3.2.7
RaidBuffsChecker, v3.6
RaidBuffStatus, v6.2.3
Recount, vv6.2.4a release
RobBossMods, v
RSA, v3.102
RSAPriest, v
SavedInstances, v6.2.8
SellJunk, v3.0.11
SexyMap, v2.4.26
ShadowPriestDoTTimer, v1.7g
TellMeWhen, v7.4.0
TomTom, vv60200-2.1.0
TradeSkillMaster, vv3.3.11
TradeSkillMasterCrafting, vv3.0.1
TradeSkillMasterDestroying, vv3.0
tullaRange, v6.2.0
XLoot, v6.2-13
XLootFrame, v6.2-13
XLootGroup, v6.2-13
XLootMaster, v6.2-13
XLootMonitor, v6.2-13
ZPerl, vr995
ZPerlArcaneBar, v
ZPerlParty, v
ZPerlPartyPet, v
ZPerlPlayer, v
ZPerlPlayerBuffs, v
ZPerlPlayerPet, v
ZPerlRaidAdmin, v
ZPerlRaidFrames, v
ZPerlRaidHelper, v
ZPerlRaidMonitor, v
ZPerlTarget, v
ZPerlTargetTarget, v
BlizRuntimeLib_enUS v6.2.4.60200 <none>
Report comment to moderator  
Reply With Quote
Post A Reply

Category Jump: