5.4.2 WeakAuras Strings

It’s been a little while since 5.4 was released, and I’ve still been tweaking my WeakAuras here and there as I go. I’ve finally made enough tweaks that I thought it was worth sharing with the class.

Again, the updated Paladin auras can all be grabbed at http://www.sacredduty.net/weakauras-strings/ along with auras for all of the other class/spec combinations I use regularly.

Weakened Blows

The first change is actually the removal of an aura that doesn’t have much meaning anymore. Now that Crusader Strike applies Weakened Blows, there’s no reason to be tracking it’s uptime. So I’ve removed that aura entirely and shifted the Eternal Flame & Sacred Shield icons over to fill the empty space.

Priority Row Shuffle

I’ve tweaked the order of the spells on the priority row a bit. I’ve been using Holy Prism more frequently lately – or to be more specific, I’ve been swapping that talent more frequently and using all three choices. Nowadays, my sims are telling me that all three of these choices fall above Consecration in priority. And more importantly, I found that I tended to forget about those spells since I had their icons so far off to the right.

So I’ve re-ordered the last few icons on the priority row. I’ve moved Execution Sentence, Light’s Hammer, and Holy Prism to the left and moved Consecration and Sacred Shield to the right.  Now the order looks like:

CS – J – AS – HW – HoW – (ES/LH/HPr) – Cons – SS

Swapping Consecration and Sacred Shield is a last-minute change that I made after recording the videos (and taking the screenshots) shown later in this post, so in those Consecrate appears to be way off to the right. It looks a little cleaner now with that last-minute change though (which is why I decided to make it!).

Tier 16 4-piece Indicator

The first new indicator is one that tells you the status of your Tier 16 4-piece bonus. When you reach 3 stacks of Bastion of Glory, you get a buff called Bastion of Power that makes your next Word of Glory or Eternal Flame free. It’s a very simple matter to track this buff in WeakAuras so you know when it’s available.

The indicator pulses if you have a 5-stack of Bastion of Glory to remind you that it’s at full strength. As per this comment on last week’s blog post, refreshing the buff immediately at 5 stacks of BoG tends to be an ideal strategy in the steady-state (i.e. at constant Vengeance). In practice you’d want to consider your current Vengeance level, of course.

The two new indicators I've added in 5.4.2, along with the (slightly) adjusted layout now that the Weakened Blows indicator is gone.

The two new indicators I’ve added in 5.4.2, also showing the adjusted layout now that the Weakened Blows indicator is gone.

Eternal Flame Stoplight

To that end, I’ve added a new indicator. In this comment, Zil asked me if I could write an aura that would tell you whether refreshing Eternal Flame would give you a larger or smaller HoT. So I wrote up this “stoplight” indicator to give us that information.

Every time you cast EF, it calculates the strength of that EF and stores that value (much like the text indicators store the effective HP used, BoG level, haste, and AP you had at the time of the cast). It then calculates the value of a new EF given the current conditions and compares that to the stored value.

If the new value is at least 10% larger than the existing one, the indicator turns green. If it’s not, it stays red. Yes, this is the reverse of how I have the text indicators working, but if that bothers you the colors are easily tweaked on the display tab of each aura. I tend to think of green as “good,” in this case the stoplight means “It would be good to cast EF” while the text auras are telling me about the status the existing EF (“Your current EF is good, don’t mess with it”). I suspect most people will only use one or the other anyway.

There’s also a text indicator that shows exactly how much better the new EF will be. It’s literally just showing you (new EF value)/(old EF value) as a percentage, so if it reads 115% (as it does in the image above) it means recasting EF at this point will be a 15% increase in healing throughput. Note that this percentage can get very large in cases where you have a one-HP Eternal Flame active and you’re sitting on 5 stacks of Bastion of Glory.

Note that this indicator takes into account everything, as far as I know. It should accurately reflect changes in mastery, haste, Bastion of Glory stacks, spellpower, holy power, crit, and even Avenging Wrath. The only thing I’ve omitted are constant factors like the 50% increase from self-casting (which you should always have) and the 5% Seal of Insight healing bonus (which you should probably also always have, since I don’t think many players are switching to Seal of Truth/Righteousness).

The video below shows the indicator during development at 4x the final size to make it easier to see how it works:

 

It didn’t occur to me to write a Sacred Shield stoplight until writing this post, but I’ll probably put one together in the next few weeks. I’ll toss it on pastebin, update the WeakAuras page with a link to it, and probably tweet about it, but probably won’t give it it’s own blog post.
Jan 15 2014 edit: SS stoplight added, bundled with the EF stoplight. Also added crit scaling to the EF stoplight.

Aura Group Re-organization

Finally, I’ve had to re-organize the aura groups a little bit. Adding the code to support the EF Stoplight aura caused one of the other groups to get too large for Ace Serializer, which in turn broke importing. So I had to split them up. They’re now organized a little differently. The three big groups haven’t changed:

Theck – Prot – Priority Row
Theck – Prot – Cooldowns Row
Vengeance Bars

Those aura groups are all independent and work perfectly well all by themselves. You can import any combination of those and they should work seamlessly.

All of the auras that give you specific information about Vengeance, Sacred Shield, and Eternal Flame now have a dependency: the “Vengeance/SS/EF Helper Auras” group. This group contains the code that saves a snapshot of your stats when you cast EF or SS, which is why it’s required for the other aura sets to work. They all perform calculations on that information to determine what to display, so without it, they don’t work.

Vengeance/SS/EF Helper Auras (required for the three sets below)

And finally, the auras that display EF and SS information; again, none of these work without the aura group linked above:

SS/EF Vengeance Bar Overlays
Vengeance/SS/EF text indicators
EF/SS Stoplight Auras

(Technically speaking, the simple Vengeance text indicator doesn’t require the helper auras, so if you’re a non-paladin tank class and want that, you can just grab the “Vengeance/SS/EF text indicators” group and delete everything with EF/SS in the title and that Vengeance indicator should still work).

Final Product

And after all of that, here’s how it looks in practice on a target dummy:

If you want to see the Vengeance Bar indicators at work, check out the old 5.4 video on the WeakAuras Strings page. And as always, that page contains the auras for all of the other classes I play or have played. If you have a question about what addon I’m using to create a certain UI element, check out the UI Construction and Key Bindings post, which should still be mostly accurate. If that doesn’t answer your question, feel free to ask in the comments.

Other Stuff

A handful of quick comments regarding Simulationcraft stuff before I go:

  • There’s a bug with Execution Sentence in Simcraft at the moment (in 542-1 at least, and several earlier builds). For some reason it’s not ramping up the damage of each tick appropriately for protection, even though it works perfectly for retribution. This is a non-trivial issue caused by some piece of code deep in the core, and at this point I couldn’t even give you a completely satisfactory answer for why it happens. But top men (meaning: people more competent than I) are on it. Top men, I say. Hopefully should be fixed for next build.
  • There’s also a small bug in the last couple revisions that causes Eternal Flame to be slightly undervalued. I put some code in there to handle the hotfix applied in September (when EF’s self-healing bonus was nerfed from 100% to 50%) and forgot to take it out once the spell database was updated to include that information. So EF was only getting a 25% bonus from being self-cast rather than a 50% bonus for a while, thus being undervalued by about 17%. Oops. Bad Theck. This will be fixed in version 542-2.
  • I’m almost done with the MATLAB automation code that runs the rotation simulation. This turned out to be a much larger and more annoying project than I expected (and I already expected it to be large and annoying). It’s arguably the most complicated of all of the sims because I had to allow the possibility of using different glyphs and talents for each rotation. Luckily, I should be able to finish it this week and have it ready for a blog post next week. Also luckily, the rest of the automation sims should be far easier to code than this one was.
  • Once those are done, I have the fun job of deciding how to make them translatable to other classes (if at all). I have to see if any of this code runs in Octave or FreeMat (unlikely, I use a lot of fancy structure and cell stuff), and if not, decide whether to translate all of this to another language so that other theorycrafters/players can contribute and use the code. I could also entertain the possibility of integrating some of these features into SimC itself in the long run (ex: a talent simulation would be pretty simple, I think), but that’s something I’ve yet to discuss with the other SimC devs.

That’s it for today.

 

This entry was posted in Tanking, Theck's Pounding Headaches and tagged , , , , , , , , , , , . Bookmark the permalink.

25 Responses to 5.4.2 WeakAuras Strings

  1. Keres says:

    thanks for the info.

    I just recently started playing around with weak auras myself, and the EF stoplight one looks very helpful.

    I’ve tried to see where else I could apply an effect to help me out but I seem to find that WA is more useful when playing my fire mage than when I’m on my tank. Time will tell I guess. I just need to play around with it more. Its a very versatile tool.

  2. If you update the hunter ones at some point, the last copy of them I downloaded didn’t check for Iron Hawk. Easy enough to add, obviously, so no sense in doing extra work if you aren’t in there already.

    • Theck says:

      I don’t think I’ve played my hunter since Iron Hawk was implemented (or if I have, I didn’t use it). If I do update them in the future, I’ll add it. For the moment I won’t mess with them since they’re really just intended to be a base for others to start from.

  3. beau carter says:

    i have a few questions i am returning to pally tanking and im having a huge problem with my up time of SotR my characters name is vixenpally on bleeding hallow. i have no clue where im going wrong im doing my rotation correctly but my up time never seems to go over 30% on garrosh. any thoughts?

    • Theck says:

      Without having logs or anything to look at, I can only guess. For most people, it’s that they’re not performing the rotation properly, usually by delaying Crusader Strike or Judgment in favor of unnecessary filler. If you’re gearing/gemming for haste, your SotR uptime should be much higher than 30%.

      My advice is to go over to Maintankadin and post your character/server info in the Gear Check / Advice thread, along with a link to a log of a recent kill. That thread is specifically for helping newer paladins figure out where their weak points are and giving advice on how they can improve.
      http://maintankadin.failsafedesign.com/forum/viewtopic.php?f=3&t=7896

  4. Thaumatrope says:

    These are really appreciated, Theck. Thanks.

  5. anonymous says:

    Hey Theck, thanks for posting these. I really enjoy them on my paladin, but regarding the Vengeance strings, do they work for other classes? I can’t seem to get Vengeance bars to show up on my warrior while in combat. Thanks -

    • Theck says:

      They work for other tanks, but you’ll have to go to the “Load” tab of the group and change the class and talent specialization drop-down boxes to fit your class/spec. I have them set up to only display for protection paladins so that they don’t show up in my Ret spec.

      • Anonymous says:

        OK. I got both the My Vengeance (me, warrior prot, changing class in Load tab) and Off-Tank Vengeanace (DK,class changed as needed in Load tab, and changing THECK_VBAR_OTNAME = “offtankname”), but can’t get the Tar Tar Vengeance to display anything, for any tank class, including my paladin. Does “THECK” need to be modified to my name, or something else, here?

        • Theck says:

          Are you testing the TarTar Vengeance one in a raid? It’s showing the Vengeance of the target of your target, so it won’t show up unless:
          (a) you have a target, and that target has a target that isn’t you (i.e. off-tanking raid boss)
          (b) AND that unit actually has Vengeance (so it has to be a player in a tank spec who’s taken damage recently).

          • Anonymous says:

            Well, fairly sure it was in a raid and had a tank-type player as target of mob/boss. Have raid later tonight, I’ll double check it. Thanks for the reply.

  6. Ungo says:

    hey theck, thanks for your awesome work.
    i have a short question. maybe i am crazy but i am under the impression that with thr 5.4.0 weakaura strings my standard wow scrolling combat text was scrolling behind all the weakaura stuff and now with the 5.4.2 wekaura strings the combat text scrolls in front of everything.
    is there a fix for this or am i remembering this wrong?

    thanks again for your work and dedication!

    • Theck says:

      I didn’t change any of the frame strata, so I don’t know why it would change. Unless the WA mod itself modified something in a new version. I don’t have any of my MSBT overlapping with auras, so I wouldn’t have noticed.

  7. Thorill says:

    Hi. First time I enter combat as prot or ret I get this Lua error:
    12x :”return function ()…”:26: attempt to perform arithmetic on global “THECK_WA_GLOBAL_SSHASTE” (a nil value)

    [string "return function ()WeakAuras.lua:1854: in function "ScanEvents"
    WeakAuras\WeakAuras-2.0.3.lua:4653: in function

    Locals:
    event = "FRAME_UPDATE"
    arg1 = nil
    arg2 = nil
    event_list = {
    SS Stoplight NoRecast = {
    }
    SS Stoplight Recast = {
    }
    }
    (for generator) = defined =[C]:-1
    (for state) = {
    SS Stoplight NoRecast = {
    }
    SS Stoplight Recast = {
    }
    }
    (for control) = “SS Stoplight NoRecast”
    id = “SS Stoplight NoRecast”
    triggers = {
    1 = {
    }
    }
    (for generator) = defined =[C]:-1
    (for state) = {
    1 = {
    }
    }
    (for control) = 1
    triggernum = 1
    data = {
    untrigger = defined return function ()
    — get combat status
    local inCombat = UnitAffectingCombat(“player”)

    — if not in combat, don’t trigger
    if not inCombat then
    return false
    end
    if not THECK_WA_GLOBAL_SSVAL then
    THECK_WA_GLOBAL_SSVAL=0
    end

    — get current Vengeance level
    local name,_,icon,_,_,_,_,_,_,_,_,_,_,_,veng=UnitBuff(“player”, “Vengeance”)
    — fix for cases where value is nil
    if not veng then
    veng=0
    end

    — Get Current stats
    local haste = UnitSpellHaste(“player”)
    local sp = (veng+UnitAttackPower(“player”))/2

    — calculate EF “power”
    local newSSPower=(240+0.819*sp)*(1+haste/100)
    local oldSSPower=(240+0.819*THECK_WA_GLOBAL_SSVAL/2)*(1+THECK_WA_GLOBAL_SSHASTE/100)

    if newSSPower>1.1*oldSSPower then
    return true
    else
    return false
    end
    end:1
    expiredHideFunc = false
    region = {
    }
    trigger = defined return function ()
    — get combat status
    local inCombat = UnitAffectingCombat(“player”)

    — if not in combat, don’t trigger
    if not inCombat then
    return false
    end
    if not THECK_WA_GLOBAL_SSVAL then
    THECK_WA_GLOBAL_SSVAL=0
    end

    — get current Vengeance level
    local name,_,icon,_,_,_,_,_,_,_,_,_,_,_,veng=UnitBuff(“player”, “Vengeance”)
    — fix for cases where value is nil
    if not veng then
    veng=0
    end

    — Get Current stats
    local haste = UnitSpellHaste(“player”)
    local sp = (veng+UnitAttackPower(“player”))/2

    — calculate EF “power”
    local newSSPower=(240+0.819*sp)*(1+haste/100)
    local oldSSPower=(240+0.819*THECK_WA_GLOBAL_SSVAL/2)*(1+THECK_WA_GLOBAL_SSHASTE/100)

    if newSSPower>1.1*oldSSPower then
    return false
    else
    return true
    end
    end:1
    event = “Health”
    subevent = false
    numAdditionalTriggers = 1
    events = {
    }
    load = defined return function(event, combat, name, class, spec, level, zone, size, difficulty, role)
    local never = false
    if(combat and (class==”PALADIN”) and (select(5, GetTalentInfo(9)) == true)) then
    return true else return false end end:1
    }
    loaded_events = {
    PLAYER_FOCUS_CHANGED = {
    }
    UNIT_POWER = {
    }
    COMBAT_LOG_EVENT_UNFILTERED = {
    }
    FRAME_UPDATE = {
    }
    PLAYER_TARGET_CHANGED = {
    }
    UNIT_INVENTORY_CHANGED = {
    }
    }
    pairs = defined =[C]:-1
    WeakAuras = {
    SetAuraVisibility = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:2596
    GetRuneCooldown = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:764
    frame_strata_types = {
    }
    DisplayToString = defined @Interface\AddOns\WeakAuras\Transmission.lua:368
    UnregisterEveryFrameUpdate = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:4660
    regions = {
    }
    form_types = {
    }
    EnsureClone = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:3809
    debug = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:174
    CanShowNameInfo = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:4420
    tutorials = {
    }
    RemoveGTFO = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:5069
    pAdd = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:3302
    Rename = defined @Interface\AddOns\WeakAuras\WeakAuras.lua:2722
    IsRegisteredForCustomTextUpdates = defined @Interface\AddOns\WeakAuras\Weak

    Apologies for the long post and you can remove/edit it if you want.

  8. ptheorellp says:

    Hi I got some problems with the EF stoplight string, for me it always shows that I should recast nomather if I just casted a 3 hp EF and are currently sitting at 1 hp. and it seems to always show that it is around 4xxxxx% better. You got any idea what this could be? I took the string from your page today, and I got weakaura 2 and everything else is wortking correct.

  9. Gnarfoz says:

    The WoG size aura has a small problem: it tries to abbreviate the amount to “M” if it’s > 999999, which, if successful, makes the variable a string (because of ..”M”). The next check (for >999) will then fail every time, since it tries to compare now string with a number (999), which errors.
    The two if then ends should be a if then elseif end, like this:

    http://www.wowace.com/paste/9220/

  10. Pingback: Vengeance, With A Vengeance | Sacred Duty

  11. Trix says:

    Thanks for the Aura Strings. Was previously using TellMeWhen for Cooldowns and Abilities, but seems to have issues when entering/exiting vehicles switching actionbars.

Leave a Reply