Get an Epic Experience with Premium

Destruction For Dummies

Combat Login to Add Favorites
  • 7 Likes
  • World of Warcraft
  • 2,157 Monthly Downloads
  • Supports: 5.1.0
  • 415,728 Total Downloads
  • Updated 12/01/2012
  • Created 07/22/2009
  • 433 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: Beta 3.0.0
or
Support development! **
Donate

About Destruction For Dummies

Status Update

I've made this work with MoP, and have a few builds supported with new EJ rotations (well, to the extent that EJ has actual rotations yet). These are very preliminary as yet.

Executive Summary

Install this mod; when a suggestion frame shows up in the middle of your screen (when you are out of combat) move it to where you want it. When the frame shows you a picture, cast the spell that picture represents. If nothing ever shows up, your current class/build is not supported.

That's all you have to know. Have fun, I hope you like it.

Introduction

This addon will display the recommended spell for you to cast (in or out of combat). It keeps track of what buffs/debuffs you have up, what your cooldowns are, and what your energy/rage/mana/runic power is, and tells you the best option. Out of combat, it will remind you to put up buffs (usually before they entirely expire). It is aimed at Level 85 toons, so recommendations below L85 will likely be suboptimal. In particular, at very low levels it will frequently not recommend anything at all; below level 10 it is guaranteed to do nothing.

You can resize the suggestion frame from the configuration panel (reached via the /dfd command). You can also lock the panel so it cannot be moved (it auto-locks in combat irrespective of this lock). You can set it to display dummy suggestions when it's unlocked, so you can see where it is to move it around and scale it.

There is a minimal assistance mode which only impacts Hunters at present; it does not give suggestions for standard rotation spells, just for unusual things. This will likely be expanded to other classes in the future.

This mod only handles single-target DPS

My To-Do List

  • Take threat into account and recommend threat-reduction measures when appropriate

Known bugs

Power (energy/mana/rage) regeneration recommendations start a timer displayed over the recommendation. When the recommendation changes, this timer remains until it counts down to 0.

The Rotations Implemented

These rotations actually have a lot of thought behind them, just not by me. Note that I did have to add things to all these rotations, as they don't take some important real-world needs into account (eg., when should a hunter cast Mend Pet during a fight? Even though it's not in the rotation, clearly letting your pet die isn't going to be the right call to up your DPS).

If you want changes to the rotation, please be prepared to explain why the source is wrong (or just point out that I'm deviating from it).

Note that some tanking builds are included (Blood Death Knights, a pretty poor Bear Druid, and an out of date Protection Warrior); these are provided as a convenience. The truth is that there are many enhancements that could be made to make this a far more useful tanking add-on, but they are going to have to wait for quite a while to get implemented. For now the add-on offers reasonable suggestions, assuming a largely straight-forward tank-and-spank fight, and is very useful (at least to me) in showing when the GCD is up. But there is no way you are going to successfully tank squat just following it's instructions; this is different from DPS'ing, where following the instructions will tend to give you close to optimal results.

Death Knights
Druids
Hunters
  • Beastmaster: cataclysm rotation
  • Marksman: cataclysm rotation
  • Survival: cataclysm rotation
Mages
  • Arcane: cataclysm rotation
  • Fire: Out of date (WotLK rotation)
  • Frost: cataclysm rotation
Paladins
  • Retribution: cataclysm rotation
Priests
  • Shadow: cataclysm rotation
Rogues
  • Assassination: cataclysm rotation
  • Combat: cataclysm rotation
  • Subtlety: cataclysm rotation
Shamans
  • Elemental: cataclysm rotation
  • Enhancement: cataclysm rotation
Warlocks
  • Affliction: cataclysm rotation
  • Demonology: cataclysm rotation
  • Destruction: cataclysm rotation
Warriors
  • Fury: Out of date (WotLK rotation)
  • Protection: Out of date (WotLK rotation)

First very rough cut at a few specs for MoP. DKs, Kitty Druids, and Windwalker Monks have potentially usable rotations. Everything else is leftover from Cataclysm.

Comments

First Previous Page 1 of 38 Next Last
  • #565

    I love this addon. Makes my life so much easier! One request. Can you update the Affliction Warlock rotation? ATM it tells us to CAST Fel Armor which is now a passive will not tell you the next ability in the line without "casting" fel armor. TYVM. Again awesome addon. I use it every day!

  • #564

    dose the current version work fro kitty dps ?

  • #563

    Glad to see you decided to bring this add on back.  have missed it!

     

    I tried it on my DK and am getting this error on 1st opening attack and nothing from there.

    Date: 2013-07-16 13:13:00 ID: 1 Error occured in: Global Count: 1 Message: ..\AddOns\DestructionForDummies\Utilities.lua line 637:    attempt to call global 'GetNumTalentTabs' (a nil value) Debug:    DestructionForDummies\Utilities.lua:637: utilTalentCount()    ...ce\AddOns\DestructionForDummies\DeathKnightFrost.lua:44: preCombat()    ...dOns\DestructionForDummies\DestructionForDummies.lua:510: ?()    DestructionForDummies\Variables.lua:19:       DestructionForDummies\Variables.lua:18 Locals: self = <table> {  classHunterBeastmaster = 6  classDeathknightUnholy = 3  utilOnTank = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:729  populateRegistry = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:544  castStartTime = 381025.324  needNewDebuffData = 1  lastSpell = "Icy Touch"  cooldownFrame = UIParent_cooldown {  }  utilHealth = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:492  utilTotem = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:579  utilFlightTime = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:558  canChantRanged = false  forceUpdate = 0  classPaladinRetribution = 13  turnOff = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:107  decisionNoCombat = <function> defined @Interface\AddOns\DestructionForDummies\DeathKnightFrost.lua:132  decisionCombat = <function> defined @Interface\AddOns\DestructionForDummies\DeathKnightFrost.lua:48  utilDebuffTime = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:83  debuffUpByAny = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1022  LoadSavedVars = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:113  utilTotemType = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:600  classMageFrost = 11  utilBuff = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:19  utilRequiredPower = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:627  utilMxBuff = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:226  turnOn = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:91  classRogueAssassination = 15  knowsSpell = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:867  myClass = 2  utilMxBuffByMe = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:269  classShamanElemental = 18  genfunc_DoAspect = <function> defined @Interface\AddOns\DestructionForDummies\HunterSurvival.lua:32  beta = false  preCombat = <function> defined @Interface\AddOns\DestructionForDummies\DeathKnightFrost.lua:42  utilWeaponEnhance = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:459  utilDebuffByMe = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:143  suggestFrame = <unnamed> {  }  utilMxDebuffByMe = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:350  altRecommend = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1055  spellReady = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:888  updateInterval = 0.5  offhandSlotNum = 17  initRangeCheckSpells = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1356  whatAmI = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:732  classWarriorProtection = 24  eventFrame = <unnamed> {  }  classDeathknightFrost = 2  distanceToTarget = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1270  unitPowerAfterCast = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1219  ToggleEnabled = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:678  utilHaveRunes = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:677  forceClass = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:726  lastAltWarnTime = 0  CreateOptionFrame = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:578  analysisAdd = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1090  classRogueSubtlety = 17  analysisInit = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1081  events = <tab AddOns:   Swatter, v4.3.1 (<%codename%>)   NPCScan, v5.0.0.5   NPCScanOverlay, v5.0.0.3   Archy, v1.8.42   Arh, v1.2.3   AucAdvanced, v5.17.5413 (NeedyNoddy)   AucFilterBasic, v5.17.5413 (NeedyNoddy)   AucFilterOutlier, v5.17.5413.5347(5.17/embedded)   AucMatchUndercut, v5.17.5413.5364(5.17/embedded)   AucStatHistogram, v5.17.5413 (NeedyNoddy)   AucStatiLevel, v5.17.5413 (NeedyNoddy)   AucStatPurchased, v5.17.5413 (NeedyNoddy)   AucStatSales, v5.17.5413.5376(5.17/embedded)   AucStatSimple, v5.17.5413 (NeedyNoddy)   AucStatStdDev, v5.17.5413 (NeedyNoddy)   AucStatWOWEcon, v5.17.5413.5323(5.17/embedded)   AucUtilAHWindowControl, v5.17.5413.5347(5.17/embedded)   AucUtilAppraiser, v5.17.5413.5393(5.17/embedded)   AucUtilAskPrice, v5.17.5413.5347(5.17/embedded)   AucUtilAutoMagic, v5.17.5413.5392(5.17/embedded)   AucUtilCompactUI, v5.17.5413.5400(5.17/embedded)   AucUtilEasyBuyout, v5.17.5413.5347(5.17/embedded)   AucUtilFixAH, v5.17.5413 (NeedyNoddy)   AucUtilItemSuggest, v5.17.5413.5365(5.17/embedded)   AucUtilPriceLevel, v5.17.5413.5365(5.17/embedded)   AucUtilScanButton, v5.17.5413.5403(5.17/embedded)   AucUtilScanFinish, v5.17.5413.5347(5.17/embedded)   AucUtilScanProgress, v5.17.5413.4979(5.17/embedded)   AucUtilScanStart, v5.17.5413.5347(5.17/embedded)   AucUtilSearchUI, v5.17.5413.5373(5.17/embedded)   AucUtilSimpleAuction, v5.17.5413.5388(5.17/embedded)   AucUtilVendMarkup, v5.17.5413.4828(5.17/embedded)   Babylonian, v5.1.DEV.332(/embedded)   BagBrother, v   Bagnon, v5.3.6   Bartender4, v4.5.10   BattlegroundTargets, v50300-4   BeanCounter, v5.17.5413 (NeedyNoddy)   BGSpy, v1.2.6   ButtonTimers, v2.5.11   CandyBucketsLunarFestival, v1.0.7   ComboPointsRedux, v2.2.16   Configator, v5.1.DEV.344(/embedded)   Cooldowns, v   DBMCore, v   DebugLib, v5.1.DEV.337(/embedded)   DestructionForDummies, v3.0.0   Enchantrix, v5.17.5413 (NeedyNoddy)   EnchantrixBarker, v5.17.5413 (NeedyNoddy)   Farmhand, vv1.6.1   Gatherer, v4.3.1   HealersHaveToDie, v2.1.4   Informant, v5.17.5413 (NeedyNoddy)   Junkster, v   LibExtraTip, v5.12.DEV.350(/embedded)   MagicRunes, v1.0.94   MagicRunesIconDisplay, v1.0.94   MagicRunesRuneBars, v1.0.94   ManaCore, v793   NugComboBar, v   Postal, v3.5.1   Recount, v   ReforgeLite, v1.32   SilverDragon, vv3.0.7   SlideBar, v4.3.1 (<%codename%>)   Stubby, v5.17.5413 (NeedyNoddy)   SwitchBar, v   TipHelper, v5.12.DEV.351(/embedded)   TomTom, vv50300-1.0.1   Tycoon, v793   TycoonContent, v794   VuhDo, v3.44   VuhDoOptions, v3.44   ZygorGuidesViewer, v4.0   BlizRuntimeLib_enUS v5.3.0.50300 <us>   (ck=9f0)

     Thanks for bringing it back, I look forward to trying the next release..

     

  • #562

    Not working with warlocks :/ Insisting I cast Fel Armor, a passive ability.

  • #561

    Oddly enough this doesn't work for Destruction Warlocks. :)

  • #559

    thanks for the addon it helps me alot i started a priest and i've read that to use discipline priest until 80 i think it was and this addon doesn't show up but on my hunter it does so is the discipline priest unsupported

    thanks for you time

     

  • #560

    change spec to shadow it will work then as this only pertains to dps/tanking specs

    rogues were re-vamped for 5.2 the error you see is a result of that (im sure it will be fixed)

  • #558

    Error I'm seeing with 5.2.0.  Only seeing it on my Rogue at this time, but have not seen it on my Hunter as of two days ago.

    Hope this helps.

    ****************************

    Message: ...dOns\DestructionForDummies\DestructionForDummies.lua:201: attempt to perform arithmetic on field 'execTime' (a nil value)
    Time: 03/10/13 11:41:00
    Count: 133
    Stack: ...dOns\DestructionForDummies\DestructionForDummies.lua:201: in function `OnUpdate'
    ...dOns\DestructionForDummies\DestructionForDummies.lua:93: in function <...dOns\DestructionForDummies\DestructionForDummies.lua:92>

    Locals: self = <table> {
     classHunterBeastmaster = 6
     utilHealth = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:492
     cooldownFrame = UIParent_cooldown {
     }
     classPaladinRetribution = 13
     debuffUpByAny = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1022
     showDebuffs = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:998
     lastSpell = "Eviscerate"
     utilWeaponEnhance = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:459
     offhandSlotNum = 17
     utilMxBuffByMe = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:269
     preCombat = <function> defined @Interface\AddOns\DestructionForDummies\RogueSubtlety.lua:11
     utilDebuffByMe = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:143
     utilMxDebuffByMe = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:350
     altRecommend = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1055
     classWarriorFury = 23
     ToggleEnabled = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:678
     forceClass = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:726
     CreateOptionFrame = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:578
     events = <table> {
     }
     mainhandSlotNum = 16
     string = <table> {
     }
     classHunterSurvival = 8
     verifyCodes = <function> defined @Interface\AddOns\DestructionForDummies\LocaleLocal.lua:826
     decisionCombat = <function> defined @Interface\AddOns\DestructionForDummies\RogueSubtlety.lua:16
     displaySpellInFrame = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:232
     utilMxNeedDebuff = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:387
     classMonkWindwalker = 12
     CreateGUI = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:329
     registry = <table> {
     }
     showCooldownAnimation = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:250
     ToggleFerralMode = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:667
     classShamanEnhancement = 19
     analysisPick = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1117
     findSpellNo = <function> defined @Interface\AddOns\DestructionForDummies\LocaleLocal.lua:809
     utilStance = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:612
     castStartTime = 36792.693
     classWarlockDemonology = 21
     genfunc_rotateWindows = <function> defined @Interface\AddOns\DestructionForDummies\DeathKnightBlood.lua:44
     classWarlockDestruction = 22
     classMageArcane = 9
     utilBuffInfo = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:177
     debuffUpByMe = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:970
     utilTimeToDie = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:507
     utilMxDebuff = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:310
     Reset = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:646
     classDeathknightUnholy = 3
     utilOnTank = <function> defined @Interface\AddOns\DestructionForDummies\Utilities.lua:729
     unitPowerAfterCast = <function> defined @Interface\AddOns\DestructionForDummies\DestructionForDummies.lua:1219
     LoadSavedVars = <function> defined @Interface\AddOns\DestructionForDummies\DestructionFo

  • #557

    Nice Work!!!

    This is a very helpful and good to use UI.

    Just add the new spells…

    And most important keep it alive!!!

  • #555

    I would also be willing to kick in financially if someone picks this project up.  It was a great addon!

  • #554

    I am wondering what it would take financially to update this addon, it is one of my favorites as well, I am willing to donate for the project to be updated for a reasonable cost

    Last edited by mcvannster on 10/5/2012 3:43:03 PM
  • #553

    any news about the addon?

     

  • #552

    since this great addon may not be updated ever again does any one knows a good alternative?

  • #551

    I'm sad to see that this addon may not be updated again. Here's to hoping it is, but in the mean time does anyone know of a similar addon to use?

  • #548

    Part of the Errors you're seeing are the result of the changes to the Talent Tree, this is causing a problem as a result of the LAU code finding what spec you are by which talent tree had the most (max) points. I believe this information can now but obtain via new APIs for MoP ... HOWEVER, most of these APIs are still undocumented so it's unclear how to get this info.

    I believe that DfD can be JURY RIGGED to "techincally" function again - meaning to run without any loading errors - HOWEVER, EarendilJenkins is right, since the code for the rotation is written in seperate files and not in LUA everything would be out of date and there is no telling what EarendilJenkins has written in the rotation code that might still use APIs that are out of date.

    So, Please do not say... Maarc, you are the MAN! Cause I am not! I have a good idea on how things should function logically, so I can kinda hammer my way thru some LAU code to figure out what is wrong, BUT I do not know Bison or Flex and I have never been good at C. So I don't know about the future of DfD.

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Curse Voice Beta Key Giveaway!

Get Your Key!