Jun 262011
 

The last few days before a patch are always very painful for anyone who maintains an addon, or in my case a script for an addon. When Cata first came out, I picked up support for the feral Ovale script that we maintain on the Fluid Druid Forums. In keeping with the tradition established by Nightcrowler (the author of FeralbyNight, an addon we used back in BC) I have always based the rotation in my Ovale script on an optimized Mew simulation script. While that sounds simple enough, it means I spend time optimizing the sim script in Mew, then updating my Ovale script to match, and finally debugging the Ovale script on the PTR. And, I pretty much have to wait until just before the patch is released due to the ongoing changes to the feral class that we have seen in 4.2 and the accompanying changes that Yawning has been making to Mew.

The good news is, barring any unforeseen additional changes to 4.2 and/or Mew, I just completed my work on the Mew sim script and a first version of a 4.2 compatible Ovale script, which means the changes to the rotation for 4.2 are fresh in my mind.

Starting from the top… in case anyone has not heard, the optimum third glyph to use is now Glyph of Berserk. So be ready to grab some Dust of Disappearance, and swap out Glyph of TF (if you are still using it). This means that the base duration of Berserk will be 25 seconds, and the duration of TF will be 30 seconds. With the 4 piece tier 12 set bonus, we will sometimes see Berserks that are over 40 seconds in length (during Heroism) and will typically see 4T12 Berserks last just over 30 seconds. The result is that the optimum time to cast Berserk is during TF (preferably at the same time). As a matter of fact, the only time you would ever want to cast Berserk without TF is if you are in a situation where the Berserk is coming off of cooldown and is going to be clipped if you wait for TF (like the end of a fight) – and even then, if TF is coming off of cooldown soon (6 seconds seems to be a good rule of thumb) you should wait for it. So make sure you have TF macroed into your Berserk, and hit both together.

Next up, casting Ferocious Bite during Berserk. Clearly, this is important to do if you have the 4 piece T12 set bonus. As it happens, it is also a small dps up to cast FB during Berserk even if you do not have the 4 piece set bonus. No more complaining about endless Shred spamming during Berserk, FB is back. There are, of course, guard times. Make sure there is at least 5 seconds left on Rip and 3 seconds left on Savage Roar when you cast your 5 combo point FBs.

In case people did not get the message in 4.1, trying to refresh Savage Roar early in order to avoid having it come off of cooldown around the same time as Rip is no longer a dps gain. However, Savage Roar has been buffed in 4.2, and the rules around when to refresh it have changed. In the 4.1 rotation, there was a 6 second Rip guard time on Savage Roar. Basically an optimized rotation would wait to refresh Savage Roar if Rip was going to expire within 6 seconds, even if this meant an extended period of downtime on Savage Roar (as much as 8 seconds). The scales have tipped, if Savage Roar is coming off of cooldown, you don’t check for when Rip is going to expire anymore, you just refresh it. Keep in mind, Rip is still higher in the priority list than Savage Roar, and we do try to refresh it about 2 seconds before it expires, so this is really about the cases where Rip has more than 2 seconds left and/or we have less than 5 combo points. Nonetheless, it is trading off uptime on Rip for uptime on Savage Roar.

Did anyone else feel a cool “Wrath-like” breeze blow by just now? Not only is it a dps up to cast Ferocious Bite during Berserk, but it is also a dps increase to cast it other times. The guard times are very restrictive (can you say “level 80 Wrath”?), 14 seconds for Rip and 10 seconds for Savage Roar, but it does happen. I spent time on the PTR training dummy earlier tonight and it popped up in my Ovale script occasionally. Just be fast, because the window closes quickly.

The final change worth mentioning is in the area of energy pooling. Keep doing it, only more than before. When you are not in the middle of TF or Berserk, refreshing a DoT or debuff or hustling to get a few extra combo points because Rip and/or Savage Roar are about to expire, get your energy up to at least 85. This is a good 10-15 energy higher than what was needed in 4.1.

Now, having gone through all of the changes, it is important to remind all of you to keep these changes in context. Specifically we have a complex priority-based rotation, and all of these changes are still subject to a set of well defined priorities. To understand those, you should spend some time reading either my new Ovale script and/or the latest, greatest Mew sim script (which should be released in the next day or two and is available via SVN). If you really want to get a good feel for the rotation, download Ovale, grab my 4.2 script from the Fluid Druid forums, and play with it on the PTR. The 4.2 Ovale script is incredibly close to the sim script, closer than any other script I have done to date. Just get on a training dummy, setup both Ovale and a cooldown monitor of some sort, and follow the Ovale suggestions. You will quickly get a feel for how the rotation has changed, especially if you keep in mind what I have covered here.

In closing, I like the rotation changes. It has brought some life back into feral play. The endless Shred spamming during Berserk was mind-numbing. I think most of you will appreciate the changes. It does feel a lot more like the Wrath rotation did. Also, the best thing about testing with a premade T12 feral was not having to keep SoTP up and running. That is probably my least favorite set bonus ever. I can’t wait to get 2 piece T12 so I can lose the 4 piece T11 set bonus (hopefully forever).

Best of luck to everyone in Firelands. Soon we will be having Fire Kitty processions and dances! I am looking forward to seeing some cool Fire Kitty videos on Youtube ;)

P.S. there will no longer be zero range Feral Charges. We have estimated that the 4.2 changes are on the order of a 9% dps increase over 4.1 , but on fights where we used to be able to Feral Charge on cooldown while standing next to the boss, expect the improvement to be half of that.

Oct 132010
 

Well, I was going to do some combat logging last night to compare to Mew, but a good chunk of my addons that were supposedly “4.0 compliant” still didn’t work. Considering that the patch (which I had conscientiously pre-downloaded) took 2.5 HOURS to install, I kinda ran out of time and patience once things actually loaded up. Anyway, here’s a quick roundup of the state of kitty addons from my perspective:

Need to Know (timer bars):

It worked (kinda) but it’d throw an error every time I turned it on. I’ll have to try deleting the saved data and recreating the bars from scratch. Thankfully, I don’t have a raid to get prepped for any time soon. :) I might start looking at other timer bar addons if it’s a big issue, but I’ve been really happy with NTK. (That said, if someone wants to recommend something that works in 4.0 in the comments, I’ll listen.)

Ovale:

Ovale has been updated for 4.0, but my script threw errors for me as well. Based on a comment on the Curse page, I believe changing the Rake spellid from  59886 to 1822 should do it, but I won’t be able to test that until tonight. Once I get Ovale working, I’ll start updating the script for 4.0 logic, using information gathered via Mew.

FeralByNight Lite:

Don’t use this personally, but this version should work.

Baud Manifest:

Okay, this isn’t really cat-related, but this was the thing I was most dreading about 4.0…my beloved Baud Manifest addon would no longer work, and I’d have to go back to looking at a grid of icons again. :( Thankfully, a fan update is here. You may want to go into the LUA (line 14) and disable debug, though.

Mar 302010
 

In Part 1 of the series, I covered buff/debuff trackers, an essential addon for any player serious about improving their kitty DPS. (Commenters: I’ve added a few more to the original post…thanks for all your great suggestions.) In this post, I’ll be examining mods that go beyond passively tracking your buffs/debuffs by helping you actually execute your DPS rotation. (Note that when I say “rotation,” that’s shorthand for “priority list.” Fixed rotations went out a while ago.)

So what does a rotation mod do, exactly?

It tells you (typically via an icon display) which skill you should use next to maximize your DPS. It comes to a decision based on several factors, including the addon’s programming, your energy/combopoints, time left on buffs/debuffs/cooldowns, enemy health, etc.

Isn’t that cheating?

Nope, though many players frown on their use. To Blizzard, as long as the mod doesn’t press the button for you (or just create one button that you can spam-click), it’s acceptable. There was an excellent wow.com discussion post on this when Facemauler was first popularized a year ago, so go there if you’d like to see some of the arguments for and against. IMHO, since the mod is not 100% infallible, I consider it a tool and not a cheat. However, I can certainly see how people could consider it as such.

Why use a DPS rotation mod?

Well, frankly, because it makes life much easier, especially on complex boss fights. On a single-target fight with no movement/switching, it’s not overly difficult to follow an ideal rotation. Once you add in movement, target switching, effect dodging, etc., the amount of mindspace left for ability choice decreases significantly. (Let’s not even mention raid leading. Gah.) A mod can help you maintain good DPS even when distracted, or teach you a good rotation if you’re still learning the class.

Cool! Any downside?

First, the helpers are only as good as the logic that powers them. Addons like these tend to come and go, as patches make significant changes to ability priorities. If you’re using an older mod (or logic), then the suggestions may not be very good. Second, the logic is structured towards a simple tank-and-spank situation (modeling anything else would be VERY complicated and probably out of the scope of an in-game addon). Most of the fights in ICC require frequent movement and target switching; you’ll frequently need to use your own judgment to maximize your DPS. (All of the wing bosses, for example, have specific times at which they are untargetable or have an add that needs killing. You’ll want to clip your DoTs to get max-duration ones up pre-switch.)

So where did these addons come from?

The first feral rotation addon was Facemauler, which was very good for its time. It wasn’t overly configurable, but it worked, and worked out-of-the-box. I used it for most of Ulduar. Sadly, it hasn’t been updated since last April, making its suggestion logic not so hot now.

Facemauler was followed by Feral By Night (FBN), a VERY complex and powerful addon, created by nightcrowler. It featured a dynamic rotation creator based on your characters stats and procs, and included a proc watcher, CD watcher, health/energy frames, all kinds of stuff. Unfortunately, it was never easy to use. It came with EVERYTHING toggled on by default, including all the stuff that never worked (so it took a lot of futzing around to get it usable) and had virtually no documentation. It was improving significantly, but nightcrowler disappeared and hasn’t updated the addon since July. FBN is still a viable option, but since it still uses 3.2 values, it’s not optimal (plus you still have to strip out the crap).

Ovale, my recommendation of choice, is slightly different. Instead of re-inventing the wheel, Ovale is designed purely as a rotation mod mechanism. It provides a scripting language for rotation authors to write scripts in; this way, when there’s a patch, instead of having to change hardcoded settings, the only things necessary are script tweaks. These scripts are simple text files that can be edited directly in-game, either by hand or just copy-pasted in. Ovale has a default script for every class that does a pretty decent job; however, you can freely replace these scripts with more complex logic for better performance.

Sounds good. How do I try it?

There’s two steps involved. First, you’ll have to install Ovale. Second, you’ll have to update the Ovale default feral druid script, which is decent but can use some improvement. I’ve provided Fatalsaints/Leafkiller’s script at the bottom of this post, which comes from the rotation discussion thread on EJ. Just copy the script below and paste into the text box in the addon settings. (If you want to keep the bear/moonkin bits, only replace the cat part, which is everything starting with the lines “if Stance(3) # cat” until “unless Stance(1) or Stance(3),” which starts the moonkin portion.)

If you’ve done this successfully, you’ll see two suggestion boxes, with two smaller boxes to the left. (Depending on how you configure the addon settings, you may need to reposition the window, shift into cat form, or enter combat for the boxes to appear.) Below is how it looks for me during a quick dummy test, with the quickoptions displayed (also shown here is my sUF character frame…yes, the scaling is off a little bit, need to fix that).

From the right, the first large box represents your main rotation (SR/Mangle/Rip/Rake/3xShred/FB), the second large box indicates when to use filler shreds/optional settings, and the small boxes are monitors for Berserk/TF. The quickoptions allow you to set certain abilities to be recommended in the box, or you can handle those manually. It’s a bit complicated to explain, but very easy to grasp once installed. If you’re having any problems getting it working, please post your issue in the forums and I’ll see if I can help.

Can I tweak the script?

Feel free! Before you start, however, I’d recommend installing Simulationcraft and playing with it some, to develop a priority order that best fits your character/situation. (I’ll be talking more about SC in a future post…it’s an awesome tool for fight modeling.) The Ovale documentation is here. If you read the script below, you’ll see lots of commented lines with #…these are the lines from the SC profile calculated to provide the best DPS, and the equivalent action in Ovale language.

Final Thoughts

I encourage everyone to give this a try, even if you hate the idea. You don’t have to use it during a raid; it can serve quite well as a training tool, to show you what an optimal rotation looks like. It’s been my experience that the vast majority of players complaining that this “decreases your situational awareness” or “doesn’t account for fight conditions” still show improvement when using it. Many people have put it quite a lot of effort to tweak the script to its optimum performance…give their hard work a try. I encourage people who’ve used this (or any rotation mod) sucessfully to share their stories in the comments.

Ovale Feral DPS Script

# Fatalsaints Feral Cat DPS Ovale Script v1FixedRakeWhitespacesTabs Leafv1.2
#
# Based on SimulationCraft actions
# http://elitistjerks.com/f73/t81052-best_possible_feral_dps_simulationcraft
#
# Source:
# http://elitistjerks.com/f73/t84378-visualising_optimal_cat_rotation_ingame/p10/#248
# -----------------------------------------------------------------------

Define(FFF 16857)
Define(FF 770)
Define(RIP 1079)
Define(MANGLE 33876)
Define(SHRED 5221)
Define(TIGER 5217)
Define(RAKE 59886)
Define(ROAR 52610)
Define(BITE 22568)
Define(BERSERK 50334)
Define(OMEN 16870)
Define(TRAUMA 46857)
Define(MANGLEB 33878)
SpellInfo(RIP resetcounter=ripshreds)
SpellInfo(SHRED inccounter=ripshreds)

AddCheckBox(CheckBoxTF "Suggest Tiger's Fury")
AddCheckBox(CheckBoxFF "Suggest Faerie Fire")
AddCheckBox(CheckBoxBk "Suggest Berserk")
AddCheckBox(CheckBoxMangle "Suggest Mangle")

AddIcon help=cd size=small
{
if Stance(3) {
Spell(TIGER priority=4)
}
}

AddIcon help=cd size=small
{
if Stance(3) {
Spell(BERSERK)
}
}
AddIcon help=main {
}
AddIcon help=main {
if Stance(3) { # Cat Form
# actions+=/faerie_fire_feral,debuff_only=1
if {CheckBoxOn(CheckBoxFF)} and {TargetDebuffExpires(FFF 0) and TargetDebuffExpires(FF 0)} Spell(FFF)

# actions+=/tigers_fury,energy<=30,berserk=0
if {CheckBoxOn(CheckBoxTF) and BuffExpires(BERSERK 0) and Mana(less 35)} Spell(TIGER)

# actions+=/berserk_cat,energy>=80,energy<=90
if {CheckBoxOn(CheckBoxBk) and Mana(more 79) and Mana(less 91)} Spell(BERSERK)

# actions+=/savage_roar,cp>=1,savage_roar<=1
if {ComboPoints(more 0) and BuffExpires(ROAR 0)} Spell(ROAR)

# actions+=/savage_roar,if=buff.combo_points.stack>=3&dot.rip.remains-buff.savage_roar.remains>=0&buff.savage_roar.remains<=8
if {ComboPoints(more 2) and TargetDebuffPresent(RIP mine=1) and more than 1s between TargetDebuffExpires(RIP mine=1) and BuffExpires(ROAR)} unless BuffPresent(ROAR 9) Spell(ROAR)

# actions+=/savage_roar,if=buff.combo_points.stack>=3&buff.savage_roar.remains-dot.rip.remains<=3&buff.savage_roar.remains<=8
if {ComboPoints(more 2) and TargetDebuffPresent(RIP mine=1) and at most 3s between BuffExpires(ROAR) and TargetDebuffExpires(RIP mine=1)} unless BuffPresent(ROAR 9) Spell(ROAR)

# actions+=/shred,cp<=4,extend_rip=1,rip<=3
if {ComboPoints(less 4) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3)} Spell(SHRED)

# actions+=/rip,cp>=5,time_to_die>=6
# actions+=/ferocious_bite,cp>=5,time_to_die<=6
# actions+=/ferocious_bite,cp>=5,rip>=8,savage_roar>=11
if {ComboPoints(more 4)} {
if {TargetDeadIn(less 7) or {TargetDebuffPresent(RIP 8 mine=1) and BuffPresent(ROAR 11)}} Spell(BITE)
if {TargetDeadIn(more 5) and TargetDebuffExpires(RIP 0 mine=1)} Spell(RIP)
}

# actions+=/mangle_cat,mangle<=1
if CheckBoxOn(CheckBoxMangle) and {TargetDebuffExpires(MANGLE 1) and TargetDebuffExpires(MANGLEB 1) and TargetDebuffExpires(TRAUMA 1)} Spell(MANGLE)

# actions+=/rake,time_to_die>=9
unless {TargetDebuffPresent(RAKE mine=1)} if TargetDeadIn(more 8) Spell(RAKE)

# actions+=/shred,if=(energy>=80|buff.omen_of_clarity.up|buff.berserk.up|cooldown.tigers_fury.remains<=3)
# actions+=/shred,time_to_die<=9
# actions+=/shred,cp<=0,savage_roar<=2
if {Mana(more 79) or BuffPresent(OMEN) or TargetDeadIn(less 10) or BuffPresent(BERSERK) or BuffExpires(TIGER 3) or TargetDeadIn(less 10) or {ComboPoints(less 1) and BuffExpires(ROAR 2)}} Spell(SHRED)
}
}
AddIcon help=main {
if Stance(3) { # Cat Form
# actions+=/savage_roar,cp>=1,savage_roar<=1
if {ComboPoints(more 0) and BuffExpires(ROAR 0)} Spell(ROAR)

# actions+=/savage_roar,if=buff.combo_points.stack>=3&dot.rip.remains-buff.savage_roar.remains>=0&buff.savage_roar.remains<=8
if {ComboPoints(more 2) and TargetDebuffPresent(RIP mine=1) and more than 1s between TargetDebuffExpires(RIP mine=1) and BuffExpires(ROAR)} unless BuffPresent(ROAR 9) Spell(ROAR)

# actions+=/savage_roar,if=buff.combo_points.stack>=3&buff.savage_roar.remains-dot.rip.remains<=3&buff.savage_roar.remains<=8
if {ComboPoints(more 2) and TargetDebuffPresent(RIP mine=1) and at most 3s between BuffExpires(ROAR) and TargetDebuffExpires(RIP mine=1)} unless BuffPresent(ROAR 9) Spell(ROAR)

# actions+=/shred,cp<=4,extend_rip=1,rip<=3
if {ComboPoints(less 4) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3)} Spell(SHRED)

# actions+=/rip,cp>=5,time_to_die>=6
# actions+=/ferocious_bite,cp>=5,time_to_die<=6
# actions+=/ferocious_bite,cp>=5,rip>=8,savage_roar>=11
if {ComboPoints(more 4)} {
if {TargetDeadIn(less 7) or {TargetDebuffPresent(RIP 8 mine=1) and BuffPresent(ROAR 11)}} Spell(BITE)
if {TargetDeadIn(more 5) and TargetDebuffExpires(RIP 0 mine=1)} Spell(RIP)
}

# actions+=/mangle_cat,mangle<=1
if CheckBoxOn(CheckBoxMangle) and {TargetDebuffExpires(MANGLE 1) and TargetDebuffExpires(MANGLEB 1) and TargetDebuffExpires(TRAUMA 1)} Spell(MANGLE)

# actions+=/rake,time_to_die>=9
unless {TargetDebuffPresent(RAKE mine=1)} if TargetDeadIn(more 8) Spell(RAKE)
}
}

Mar 252010
 

In today’s post, I’m starting a series that will look at addons that can help your kitty raid performance. For Part 1, I’ll look at a few examples of buff/debuff trackers; for Part 2, I’ll run down some rotation helpers; and in Part 3, I’ll talk about some ways to increase your utility.

Why use a custom buff/debuff tracker?

Let’s face it…the default UI is pretty horrible for tracking buffs/debuffs. 3.3 is considerably improved from previous versions, but it still uses the icon-based scheme that makes finding specific information quickly very difficult. The feral rotation is VERY dependent on maintaining a self-buff and three enemy debuffs; the direct attacks are low-priority. As such, I’ve pulled together three different buff/debuff trackers, all of which I recommend. (The following screenshots all reflect the same state, with Rip/Rake/Mangle/FFF up, SR just having dropped, and TF/Berserk off CD.)

Cat’s Eye

One of the posters in the forums recommended Cat’s Eye, which I’d never heard of. I downloaded it and was very impressed with the intuitive nature of the frame, straight out of the box. Across the top, you have a easy-to-understand combo point display and current attack power representation. Underneath, you have a nicely formatted window, with icons and color-coded bars. By default, green represents an active buff/debuff, blue represents a missing buff/debuff or ability waiting to be used, and red (not shown here) represents an ability not ready to be used (low on energy, on cooldown, not enough CP’s, etc.) The colors are all adjustable, as is frame size, bar order, etc. Not shown is the icon for an OOC proc, which shows up as a white bubble next to the CP display. (The horizontal bars represent player and target health, respectively.)  This is a great minimalistic solution for those who don’t want to do a lot of configuring. The only downsides: no bear support, and it hasn’t been updated in a while (but it works great still).

BadKitty

BadKitty’s been around for a while. I’ve tried it previously and disliked it, but the recent customization options have made it quite a bit better, and worthy of consideration. BK is divided up into two freely movable modules- Bars (on the left) and Warnings on the right. The bars section is notable for including a few extra features (Shred Count for tracking Glyph of Shred usage, and Instant Nature for the Predator’s Swiftness proc). The warnings section, as seen to the right, depicts the information from the bars in icon format, with OOC procs in the center. All the bars and warnings can be reordered/shown/hidden, as well as colors/fonts customized to suit. It also has full bear support, which is great if you tank as well. It’s kept well up to date and has an active userbase…recommended. (EDIT: It appears it’s been updated to track trinket CD’s as well).

Need to Know

Need to Know is the buff/debuff tracker that I currently use. It’s not quite as plug-and-play as the other two trackers here, but the open design makes it usable for any class (I use it on my lock to track DoTs, on my pally to track Art of War procs, etc). It’s very simple to configure everything, as it’s all right-click menus. You’ll only need to enter the interface screen once to configure how many bars/bargroups you want. Tracks Rip increases via Shred glyph, can track multiple spells per bar (ie. Mangle (Cat)/Mangle (Bear)), can track trinket CD’s, and can be set up differently for dual-specs. (I track CP’s on my playerframe, and  Zerk/TF CD’s via Ovale, which I’ll cover in part 2.) The only thing I dislike about NTK is the inability to reorder bars once configured…other than that, it’s a great addon.

Summary

Any of these are good addons…pick the one you like and roll with it. The important thing is knowing which buffs/debuffs you need to put up, and debuff durations to sync with movement. None of these addons will tell you what to do, though…you’ll have to come up with a rotation on your own. In Part 2, I’ll look at Ovale and Feral By Night, addons that will help you learn which buttons to press to maximize your DPS.

Edit:

Several people in the comments have suggested others: here’s a quick roundup. (I don’t have time to install and SS these myself, so I’m just showing the pics from Curse.)

Droodfocus

Droodfocus looks to be very customizable, and can track extra stuff, including a threat bar and an icon warning system to tell you whether you’re attacking from the front or out of range. This actually looks really awesome…I’ll be giving this a try.

CatRotationHelper

Icons with cooldowns, works for both Cat and Bear.

As i mentioned in my comment, there are TONS of generic buff/debuff/cooldown monitor addons, too many to cover here. (Off the top of my head, PowerAuras and TellMeWhen are icon-based; DoTimer, ForteXorcist, ClassTimers, ButtonTimers.) If anyone knows of more cat-specific addons, I’ll be happy to add them to either this post or a later part.