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)
}
}

  12 Responses to “Kitty UI Addons, Part 2”

  1. I take pride in all the effort I put in “mastering” the priorities and more/less successfully applying it flexibly to a specific boss encounter. I’m tempted to try this out on a dummy so it’d show me the error of my ways, but do you really use this in raid enviroment?

    • You can easily try it at a dummy. For my tests, I usually do a 1m rotation (open with Mangle, stop when Mangle debuff drops). Do that three times without Ovale, and three times with (the three times helps compensate for RNG) and compare DPS. Make sure you’ve dropped all your CP’s before restarting, though, or you’ll get skewed numbers.

  2. Sometimes when a bossfight gets complicated, messy, or you’re just unexperienced with the fight, you might get those blank moments where too much is going on around you and you stop dps’ing for a moment. This is when for me, FbN came in handy, it quickly put me back on the right path. Later on, once you’re familiar with the boss mechanics, you will know exactly when to use what, and will not need the tool as much, if at all. But especially in the early phases of learning how to play a decent cat, I really recommend trying it out.

    • Even with knowing the rotation pretty well, I still find it helpful for knowing optimum times to desync SR/Rip timers, or good times to FB.

  3. I tried Ovale this evening in an ICC run, I copied the script above, and what I noticed was that it never asked me to use mangle (we didn’t have a manglebot), and it asked me to refresh rake when it had been refreshed and running for the next few seconds.
    Is that normal or should I change the script somehow? Overall, it confused me more than it helped, because of these issues :-(

    • For the mangle bit, had you checked suggest Mangle? It defaults off (I might mod the script to set the default on that to on).

      Not sure about the rake thing. I’ve never seen it suggest clipping rake, and it never should (it’s actually designed to not suggest rake if the mob will die soon). If you only replaced a portion of the default script, go ahead and replace the whole thing with what I posted and see if it still happens.

      • Thanks for the reply Alaron, I was silly enough not no notice the checkbox, and everything was unchecked. I recopied the whole script, repasted it, and on the dummy all seems to work fine now. Thank you a lot.

  4. Ovale is a huge increase in dps. Any feral dps player that cares more about helping their raid down bosses than they care about their own pride in their skill will be using it.
    Also takes away the need to track Rake via a timer, really.

  5. I was wondering if you could shed some light on some things I have been noticing on EJ concerning Ovale and FBN. It would seem to me that FBN is put down every chance the Ovale writers have. You mentioned that FBN still uses 3.2 values but what I fail to see is what has changed that much now.
    I can only think of a few things and maybe you could tell me if I am missing something. 1) rake now crits with 4T10, 2) through SimCraft we now know that we should only shred on OOC procs if we do not have a dot to refresh or SR to put back up, and 3) …… I can’t think of anything else that has changed that would effect the use of FBN or make it outdated. The rake change was even modeled in easyily enough through a post from the Ovale thread of all places. What I am missing is how to change it so that it doesn’t always suggest shred on all OOC procs. I also need to figure out how to model in the new trinkets such as DBW but overall I really don’t think it hurts my dps too much.
    Things that are wrong with FBN also include that it is bloated with Ulduar specific boss moves. Nightcrowler felt that he wanted to add specific boss circumstances to make FBN better. This part of the script could probably be yanked out.
    I tried using Ovale and EJ script when it was at its first few versions and it always seemed to produce less dps for me. It would be bad energy pooling and it would not suggest FB enough for my taste.
    I would love to hear your thoughts on this and sorry for my rant. I just didn’t know where else or who else to talk to about this. Keep up the good work.

    p.s. sorry for the long post ><

    • I agree with a lot of what your saying. I’ve tried Ovale and didn’t like it. I hadn’t put in the script, but i was looking more at timers in the form of icons and not for any type of suggested moves. The “look” and feel of Ovale just didn’t have what I’m out after.
      I use FBN but have stripped it down to the utter basics, Icons with timers. Basically unchecked everything there was to uncheck from Ulduar bosses and most of everything else too. Like you said, we know that rake is high priority now. There’s even a sliding scale that you can adjust for suggesting rake over shred if you’re looking help with suggesting moves. I don’t really feel that FBN is outdated either. It IS however bloated with garbage that is not necessary if you’re confident with your decision makings.
      Perhaps I should try something else that is a pure icons and timers add-on, but i’m unsure if some of the others keep track of boss debuffs or only my own. Didn’t like Badkitty either, although it had only first come out when I tried that.
      The search for the perfect add-on continues . . .

  6. Thanks so much for this. I found your blog via the comments section on WoW and was frustrated with all the kitty addons being out of dated, nonfunctional or bad.

    Ovale looks great and your blog makes it on my WoW RSS list.

    Thanks :)

Leave a Reply