Thursday, September 23, 2010

Keeping track of procs/cooldowns - Power Auras

I've recently talked with several boomkin who have had trouble getting up their dps, even in gear with little enough haste that continual spell queuing is still possible. After some analisys, I noticed that they didn't cast as many starfall, treants, etc...or didn't make smart use of a haste pot in a non-bloodlust fight. To help with that right now, I want to talk about an addon, PowerAuras.
I also suggest you get used to this style of tracking, since it is built into the Cataclysm WoW client.

Let's take the no-addon person first. To catch procs, you're constantly scanning through different spots in your buff table, looking for icons and their durations, and hoping not to miss one. For cooldowns, you're looking at the opposite side (bottom) of the screen for when your abilities become available again, all while trying to watch what the boss is doing and where you are. Clearly, this is horrible from the perspective of getting the info you need.

Second, let's take somebody using any of the various cooldown tracker addons. Most of these, including the wonderful squawk and awe, use bars to show you how long you have something up, or how long you need to wait. This at least puts everything in one place for you, lets you see cooldowns (which you had no way of seeing except for your castable abilities). Much better, and viable, but not the easiest way to get information since we're still comparing many bars and trying to find which one is what we want info on right now.

So now let's look at Power Auras. We can display pictures (and timers) for things, along with sounds if desired. In my case, I always used to forget about starfall and treants long enough to miss getting them up anywhere near as much (something that apparently is common). I also used to drop my dots (back when we always wanted them both up all the time, like it seems we will again in cataclysm). I also found it really REALLY annoying to move, not proc eclipse, and then have wasted an eclipse, or tried to proc the wrong one (thinking it was off of cooldown, or thinking that I still had time before I could proc). I would also occasionally miss the eclipse if a lot was going on, or think another boomkin's eclipse that was stacked with me was my own. To solve this, I've turned to PowerAuras. I display a larger eclipse type graphic above my head, with a countdown timer, eclipse cooldown graphics smaller near it, treant and starfall availability (or countdown to being available), my haste procs on crit to make sure hurricane is hasted, and various trinket/ability procs stack up below (though I don't watch their cooldowns). This makes it really easy to see what's going on and keep things up that need to be (like insect swarm for mitigation on progression content).

Note: I track DFO, but not other trinkets (since I don't have them), the ooc t10 proc, and the ring proc. If you wish to track others, you can simply duplicate the item in power auras and use your proc's name instead. You can also track debuffs, but I leave that up to your own fooling with the mod, as that is usually more of a per-boss thing.

If you want to try my setup, here's how:
1) type /powa to open up power auras
2) click on the import set button
3) paste in the following and click ok. (wall 'o text incoming)

Set=Boomkin@
Aura[1]=Version:st3.0.0J; gcd:bofalse; b:nu0.89803921568627; anim1:nu1; g:nu1; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Spell_Nature_NaturesBlessing; size:nu1.5; torsion:nu1; r:nu0.94901960784314; Instance5ManHeroic:nu0; begin:nu0; x:nu0; customsoundend:st; customname:st; groupany:bofalse; isAlive:botrue; timerduration:nu0; unitn:stOnly for raid/group.; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu4; alpha:nu0.75000005960464; aurastext:st; InstanceBg:nu0; symetrie:nu3; owntex:bofalse; isResting:nu0; duration:nu0; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:bofalse; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:bofalse; id:nu1; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:stNature's Grace; y:nu0; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu0@
Aura[2]=Version:st3.0.0J; gcd:bofalse; b:nu1; anim1:nu1; g:nu1; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:botrue; icon:stInterface\Icons\Spell_Nature_StarFall; size:nu0.18999999761581; torsion:nu1; r:nu1; Instance5ManHeroic:nu0; begin:nu0; x:nu48; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu0; unitn:st; bufftype:nu2; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu1; alpha:nu0.75000005960464; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:botrue; isResting:nu0; duration:nu0; mine:botrue; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:botrue; id:nu2; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:botrue; Showing:bofalse; UseOldAnimations:bofalse; buffname:stMoonfire; y:nu-80; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu2; timer.InvertAuraBelow:nu0; timer.cents:bofalse; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu-74; timer.h:nu1; timer.ShowOnAuraHide:bofalse; timer.Transparent:botrue; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu30; timer.Texture:stMonofonto@
Aura[3]=Version:st3.0.0J; gcd:bofalse; b:nu0.64313725490196; anim1:nu1; g:nu0.43921568627451; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Ability_Druid_Eclipse; size:nu0.5; torsion:nu1; r:nu0.34901960784314; Instance5ManHeroic:nu0; begin:nu1; x:nu0; customsoundend:st; customname:st; groupany:bofalse; isAlive:botrue; timerduration:nu0; unitn:stOnly for raid/group.; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu5; alpha:nu0.75000005960464; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:nu0; duration:nu0; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:botrue; id:nu3; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:botrue; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:botrue; Showing:bofalse; UseOldAnimations:bofalse; buffname:stAbility_Druid_Eclipse; y:nu100; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu3; timer.InvertAuraBelow:nu0; timer.cents:botrue; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu27; timer.h:nu1.5; timer.ShowOnAuraHide:bofalse; timer.Transparent:botrue; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu-9; timer.Texture:stMonofonto@
Aura[4]=Version:st3.0.0J; gcd:bofalse; b:nu0.19607843137255; anim1:nu1; g:nu0.61176470588235; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Ability_Druid_EclipseOrange; size:nu0.5; torsion:nu1; r:nu1; Instance5ManHeroic:nu0; begin:nu1; x:nu0; customsoundend:st; customname:st; groupany:bofalse; isAlive:botrue; timerduration:nu0; unitn:stOnly for raid/group.; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu5; alpha:nu0.75000005960464; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:nu0; duration:nu0; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:botrue; id:nu4; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:botrue; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:botrue; Showing:bofalse; UseOldAnimations:bofalse; buffname:stAbility_Druid_EclipseOrange; y:nu100; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu4; timer.InvertAuraBelow:nu0; timer.cents:botrue; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu27; timer.h:nu1.5; timer.ShowOnAuraHide:bofalse; timer.Transparent:botrue; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu-10; timer.Texture:stMonofonto@
Aura[5]=Version:st3.0.0J; gcd:bofalse; b:nu1; anim1:nu1; g:nu0.69019607843137; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Spell_Nature_Lightning; size:nu0.019999999552965; torsion:nu1; r:nu0.30196078431373; Instance5ManHeroic:nu0; begin:nu0; x:nu0; customsoundend:st; customname:st; groupany:bofalse; isAlive:botrue; timerduration:nu0; unitn:stOnly for raid/group.; bufftype:nu7; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu23; slot:nu51; alpha:nu0.10000000149012; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:botrue; isResting:nu0; duration:nu0; mine:bofalse; multiids:st; spec1:botrue; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; randomcolor:bofalse; InactiveDueToState:bofalse; stacksOperator:st=; realaura:nu1; threshold:nu50; exact:botrue; id:nu5; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:stInnervate; y:nu-30; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1@
Aura[6]=Version:st3.0.0J; gcd:bofalse; b:nu1; anim1:nu4; g:nu0.50588235294118; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\icons\Spell_fire_meteorstorm; size:nu0.5; torsion:nu1; r:nu0.27058823529412; Instance5ManHeroic:nu0; begin:nu1; x:nu0; customsoundend:st; customname:st; groupany:bofalse; isAlive:botrue; timerduration:nu0; unitn:stOnly for raid/group.; bufftype:nu9; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu15; alpha:nu0.75000005960464; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:nu0; duration:nu0; mine:bofalse; multiids:st5; inVehicle:bofalse; speed:nu2; Instance5Man:nu0; sound:nu0; spec1:botrue; InactiveDueToState:bofalse; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu56; exact:bofalse; id:nu6; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu2; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:st???; y:nu216; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1@
Aura[7]=Version:st3.0.0J; gcd:bofalse; b:nu1; anim1:nu1; g:nu1; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:botrue; icon:stInterface\Icons\Spell_Nature_InsectSwarm; size:nu0.18999999761581; torsion:nu1; r:nu1; Instance5ManHeroic:nu0; begin:nu0; x:nu-48; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu0; unitn:st; bufftype:nu2; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu1; alpha:nu0.75; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:botrue; isResting:nu0; duration:nu0; mine:botrue; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:botrue; id:nu7; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:botrue; Showing:bofalse; UseOldAnimations:bofalse; buffname:stInsect Swarm; y:nu-80; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu7; timer.InvertAuraBelow:nu0; timer.cents:bofalse; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu-74; timer.h:nu1; timer.ShowOnAuraHide:bofalse; timer.Transparent:botrue; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu-30; timer.Texture:stMonofonto@
Aura[8]=Version:st3.0.0J; gcd:bofalse; b:nu0.15294117647059; anim1:nu1; g:nu1; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Ability_Druid_ForceofNature; size:nu0.5; torsion:nu1; r:nu0; Instance5ManHeroic:nu0; begin:nu5; x:nu-64; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu0; unitn:st; bufftype:nu15; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu23; alpha:nu0.34999999403954; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:bofalse; duration:nu0; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; spec1:botrue; InactiveDueToState:botrue; stacksOperator:st>=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:bofalse; id:nu8; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:botrue; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:stForce of Nature; y:nu191; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu8; timer.InvertAuraBelow:nu0; timer.cents:botrue; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu120; timer.h:nu1; timer.ShowOnAuraHide:botrue; timer.Transparent:bofalse; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu-51; timer.Texture:stDefault@
Aura[9]=Version:st3.0.0J; gcd:bofalse; b:nu1; anim1:nu1; g:nu0.9921568627451; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Ability_Druid_Starfall; size:nu0.5; torsion:nu1; r:nu0.67450980392157; Instance5ManHeroic:nu0; begin:nu7; x:nu65; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu0; unitn:st; bufftype:nu15; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu45; alpha:nu0.60000002384186; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:bofalse; duration:nu0; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; spec1:botrue; InactiveDueToState:botrue; stacksOperator:st>=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:bofalse; id:nu9; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:botrue; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:stStarfall; y:nu180; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu9; timer.InvertAuraBelow:nu0; timer.cents:botrue; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu120; timer.h:nu1; timer.ShowOnAuraHide:botrue; timer.Transparent:bofalse; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu34; timer.Texture:stDefault@
Aura[10]=Version:st3.0.0J; gcd:bofalse; b:nu0.43921568627451; anim1:nu1; g:nu0.15686274509804; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Spell_Shadow_BurningSpirit; size:nu1.0999999046326; torsion:nu1.5; r:nu0.46666666666667; Instance5ManHeroic:nu0; begin:nu0; x:nu-1; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu0; unitn:st; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu23; alpha:nu0.75000005960464; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:nu0; duration:nu6; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:bofalse; id:nu10; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu4; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:botrue; Showing:bofalse; UseOldAnimations:bofalse; buffname:stOmen of Doom; y:nu-155; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu10; timer.InvertAuraBelow:nu0; timer.cents:botrue; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu-115; timer.h:nu1.25; timer.ShowOnAuraHide:bofalse; timer.Transparent:bofalse; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu-11; timer.Texture:stDefault@
Aura[11]=Version:st3.0.0J; gcd:bofalse; b:nu0.94117647058824; anim1:nu1; g:nu0.33333333333333; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Spell_Holy_MindVision; size:nu1.0999999046326; torsion:nu1.5; r:nu0; Instance5ManHeroic:nu0; begin:nu0; x:nu1; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu0; unitn:st; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu23; alpha:nu0.65000003576279; aurastext:st; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:nu0; duration:nu6; mine:bofalse; multiids:st; inVehicle:bofalse; speed:nu1; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:bofalse; id:nu11; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu4; wowtex:bofalse; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:botrue; Showing:bofalse; UseOldAnimations:bofalse; buffname:stFrostforged Sage; y:nu-225; off:bofalse; texmode:nu1; inverse:bofalse; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1; timer.a:nu1; timer.HideRequest:botrue; timer.id:nu11; timer.InvertAuraBelow:nu0; timer.cents:botrue; timer.HideLeadingZeros:bofalse; timer.Showing:bofalse; timer.enabled:botrue; timer.y:nu-158; timer.h:nu1.25; timer.ShowOnAuraHide:bofalse; timer.Transparent:bofalse; timer.UpdatePing:bofalse; timer.ShowActivation:bofalse; timer.x:nu-11; timer.Texture:stDefault@
Aura[12]=Version:st3.0.0J; gcd:bofalse; b:nu0.67058823529412; anim1:nu4; g:nu0.074509803921569; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Ability_Druid_Eclipse; size:nu0.15999999642372; torsion:nu1; r:nu0.35294117647059; Instance5ManHeroic:nu0; begin:nu0; x:nu65; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu30; unitn:st; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu5; alpha:nu0.75000005960464; aurastext:stLunarCooldown; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:bofalse; duration:nu15; mine:botrue; multiids:st; inVehicle:bofalse; speed:nu0.5; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st>=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:botrue; id:nu12; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:botrue; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:stAbility_Druid_Eclipse; y:nu119; off:bofalse; texmode:nu1; inverse:botrue; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1@
Aura[13]=Version:st3.0.0J; gcd:bofalse; b:nu0.011764705882353; anim1:nu1; g:nu0.30588235294118; optunitn:bofalse; ignoremaj:botrue; Instance25ManHeroic:nu0; stacksLower:nu0; target:bofalse; icon:stInterface\Icons\Ability_Druid_EclipseOrange; size:nu0.15999999642372; torsion:nu1; r:nu0.59607843137255; Instance5ManHeroic:nu0; begin:nu0; x:nu-65; customsoundend:st; customname:st; groupany:botrue; isAlive:botrue; timerduration:nu30; unitn:st; bufftype:nu1; stacks:nu0; focus:bofalse; Instance10ManHeroic:nu0; raid:bofalse; texture:nu5; alpha:nu0.75000005960464; aurastext:stLunarCooldown; InstanceBg:nu0; symetrie:nu0; owntex:bofalse; isResting:bofalse; duration:nu15; mine:botrue; multiids:st; inVehicle:bofalse; speed:nu0.5; Instance5Man:nu0; sound:nu0; InactiveDueToState:botrue; stacksOperator:st>=; realaura:nu1; randomcolor:bofalse; threshold:nu50; exact:botrue; id:nu13; HideRequest:bofalse; textaura:bofalse; Active:bofalse; anim2:nu0; wowtex:botrue; groupOrSelf:bofalse; customsound:st; soundend:nu0; beginSpin:bofalse; InstanceArena:nu0; inParty:nu0; tooltipCheck:st; GTFO:nu0; aurastextfont:nu1; stance:nu10; spec2:botrue; Instance10Man:nu0; customtex:bofalse; PvP:nu0; spec1:botrue; Instance25Man:nu0; isSecondary:bofalse; thresholdinvert:bofalse; inRaid:nu0; combat:nu0; Showing:bofalse; UseOldAnimations:bofalse; buffname:stAbility_Druid_EclipseOrange; y:nu119; off:bofalse; texmode:nu1; inverse:botrue; ismounted:bofalse; targetfriend:bofalse; party:bofalse; finish:nu1@

Speed tip confirmed

So, I took myself to task to up my DPS, as it seemed fairly far off from spreadsheets, rather than somewhat close.
The last post was the result of that and some dummy testing. So how did I do?

Well, I did quite well. I went from being about 85% for ranking status on most 10 mans to being a top record holder on many of the fights (as according to World of Logs). Needless to say, faster fingers do wonders when dealing with below GCD haste levels.

Thursday, September 16, 2010

Are you fast enough?

This question is a larger question than you might think, and all aspects of it are valid to ask and discuss.

Firstly, are you fast enough to be observant?
Then, are you fast enough to move (usually out of the way of something bad)?
Are you fast enough to react to a raidlead's instruction (brez, adjust, etc)?
For these 3, and other similar issues, please see my previous post on raid awareness, much of it applies to how quickly you are aware, reducing the time it takes you to do everything else.

Can you move fast enough to get out of said problem?
AKA, do you use tustkar's or cat's swiftness? Do you make use of travel form, sprint/dash, blink, rocket boots?
If you can't say yes to any of the above...you need to.


Lastly, and my main focus and inspiration for this, are you fast enough to do max dps?
Let's assume you can stand in 1 spot and never have to move (since all of that is covered in the above areas).
You will have 3 main things that determine how fast you can cast and get a spell out.

1) Do you have enough haste?
Make sure you're at LEAST at the soft haste cap (roughly 400 as a boomkin with full raid buffs).
Get more, more is better.

2) Is your ping/latency low enough?
There are many ways that people go about dropping this, but they all boil down to network settings changes. The simple and easy answer is to look up leatrix latency fix for you Windows users, their faq also has info on how to do the same via command line on Mac. Sometimes it helps, other times it doesn't. Some folks, especially in other countries from their game server, will use a third party game proxy service. You're aiming for something in the <50 range, but even 200 is playable. If you have huge latency, especially as a boomkin, use crit instead of haste once above the soft cap, or just pure SP (as most do anyway).

3) Do you understand how spell queueing works? How about for instants or shorter than GCD casts?
Let's take the easy example of Starfire (since it will pretty much never be non-queued).
When you cast starfire, it takes longer than the GCD. Once the GCD is done AND the spell is about to finish, you can press it again and it will be queued. This lets the server start casting it as soon as the other spell is done, for a net result of no lost cast time. The most effective way to get this to happen is simply to spam your cast key, so you'll get into that queue window asap, even if you have bad latency.

Now let's look at a spell like wrath (which will drop below the GCD cast time easily once in mostly 264 gear, when you proc on crit, if not before). I'll use me as an example. wrath takes .7 sec to cast, the GCD is 1 sec, so I have a minimum theoretical time of .3 sec every sec of not being casting. This is how any kind of dps spreadsheet or RAWR will look at things, for the most part.

Now let's look at how this is implemented, technically. You press the wrath keybind (you're not clicking are you?), your client checks to make sure you're not inside the GCD...if you are it throws away the keypress, then it checks to see if you're CC'd or unable to cast for some other reason...if so it throws out the keypress, then it checks to see if you're casting...if you are, and you're not in the queueable window, it throws away the keypress...then it sends the wrath command to the server (internet latency), then the server checks to make sure you're not doing anything else, then the server executes your command. This is where a lot of people end it, but it is important to note the next step too. Your client doesn't start the GCD (local on the client) until the server tells your client (internet latency), that your command has started.

Now that you know how it works, let's talk about speeding up Wrath casting. The average button spammer hits the keyboard about 4-5 times per second. For the sake of simplicity, I'm going to use 5 times/sec, which means you hit the key every .2 seconds on average. So, looking at our wrath example, you cast, get back a gcd, at which point you need to INSTANTLY hit the wrath button. In our average situation, you're going to miss by anywhere from almost nothing to .2 seconds. .2 sec on a spell that only takes 1 sec (only because of the GCD) is fairly significant...making it up to a 20% increase in cast time used for 1 cast. Clearly, the answer is to "FACEROLL HARDER!" Seriously though, we need to generate more wrath commands faster, so that we loose less time doing nothing. Bliz has stated that programable keyboards and such are violations of the ToS and User Agreement, and can result in a ban...but there is an easy answer. Most people can use 2 fingers alternately, almost as effectively as a single one. So, if you use...say, 2, as your wrath button. Put wrath into the 3 slot as well and use 2 fingers to mash on it. You won't be consistant with 1 vs the other, one will probably end up slower sometimes or get you off pattern, but just try to get comfortable with alternating fingers to hit the keys. This can bring your tap time down easily to about .1 sec instead of .2...which means now you do 10% more dps while casting wrath (assuming your latency is reasonable).

This is applicable to any chain casting class that is hitting the GCD with the same spell, including restos using intants and mouseover targets. Please let me know if this helps you too! :)

Progression Update

Hey everybody. I've been busy with my new job and enjoying my, and my wife's, birthdays. Sorry for the lack of posts.

A quick update on progression. We've been working on RS 25 HM for a while now...and have come to a saddening realization.
We just don't have the gear. We are now at a point where we do the fight without people dying, and have a solid P3 attempt almost every time, but even when P3 is perfectly balanced, we don't quite have the dps output to beat the enrage timer. Thankfully, for those of you not trying for top server or world spots, this is pretty much a non-issue in heroic 10, and is definitely not an issue in 25 normal.

As a result, we're not going to try LK HM 25 instead. It is a "harder" fight, but the fight is not a gear check (except perhaps on healers and a tank), but more of an awareness check. We're good at that in general, so we'll see how this works out. We pulled LK twice last night after clearing everything else, and both were P2 attempts. We need to work on logistics of who stuns/kills which valks, and getting everybody stacked up a little better so that the valks literally stay on top of each other for cleaves, rather than mostly sorta going the same way. I have no doubt that will be taken care of tonight and we'll get to enjoy the fun that is P3. :)