Get an Epic Experience with Premium

Ovale Spell Priority

Buffs & Debuffs Login to Add Favorites
  • World of Warcraft
  • 55,834 Monthly Downloads
  • Supports: 6.2.0
  • 2,432,562 Total Downloads
  • Updated 06/28/2015
  • Created 08/17/2008
  • 803 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: MIT License
  • Newest File: 6.2.5

About Ovale Spell Priority

Ovale Spell Priority is a rotation-helper addon that shows you what spell or ability you should use in order to maximize your damage.

It displays one or more icons that show the cooldown of an action. The action is conditionally defined through a user-defined script, e.g. you may display either Corruption if the DoT is not on your target or Shadow Bolt if the Corruption DoT is already on your target.

The current release of Ovale provides default scripts for the following classes for Warlords of Draenor:

  • Death Knight: Blood, Frost, Unholy
  • Druid: Feral, Guardian, Restoration (Balance is NOT currently supported)
  • Hunter: Beast Mastery, Marksmanship, Survival
  • Mage: Arcane, Fire, Frost
  • Monk: Brewmaster, Windwalker
  • Paladin: Protection, Retribution
  • Priest: Shadow
  • Rogue: Assassination, Combat, Subtlety
  • Shaman: Elemental, Enhancement, Restoration
  • Warlock: Affliction, Demonology, Destruction
  • Warrior: Arms, Fury, Protection

Default scripts are based on SimulationCraft. You may also customize the default script to suit your needs (see Documentation) or use scripts made by other users.

See the video of a survival hunter using Ovale during Wrath of the Lich King.

Please use the forums to submit scripts or discuss them. If you want to report bugs, use the ticket manager.


  • Tracks DoTs, buffs, debuffs, cooldowns, combo points, runes, mana -- everything that a player would need to decide what to do.
  • Adapts to your talent points and glyphs.
  • 100% configurable: everything is in an easy-to-understand script that you can modify and test in real-time without reloading your UI.
  • Compatible with the action icon skinning library Masque.
  • Use SpellFlashCore to flash abilities on action bars in addition, or as an alternative, to displaying the ability icons.


How closely are the default scripts based on SimulationCraft?

The SimulationCraft APL language and the Ovale script language are functionally very similar and concepts from one can be translated into the other in a very direct and mechanical way. For all intents and purposes, the default scripts are the SimulationCraft APLs imported into the game and displayed visually.

Why is the key binding displayed for an action wrong?

You may be running an action bar addon, e.g., Bartender4, etc., that does not use the Blizzard action bar frames.

Why is the icon sometimes red?

The cooldown that is displayed in an icon is not always the true action cooldown. If this cooldown is longer than the action cooldown, then the icon is red. In most cases, it means that if you use this action too soon, then you will overwrite or clip a DoT, which may not be what you want.

How do I make the spells flash on the action bar?

Simply install SpellFlashCore (included if you install SpellFlash) and Ovale will use it to flash the spell to cast on the action bar in addition to displaying the spell in the Ovale icon bar.

Why can't I click on the icon to cast the spell?

Blizzard does not allow this. Only a predefined sequence of spells can be bound to an action icon and this sequence can not change in combat.

On my low-level character, there is nothing at all.

You need to reach level 10 and choose a specialization. However, be aware that the default Ovale scripts are tuned for max-level characters and you may be missing key abilities at low levels that are assumed to exist. If the default script is not working for you, you will need to find or write a script more appropriate for your character's level.

Ovale Spell Priority 6.2.5

Changes from version 6.2.4:

  • Regenerate Arms Warrior script to fix rage.deficit translation.

  • Teach OvaleSimulationCraft about min_frenzy and rage.deficit.

Changes from version 6.2.3:

  • Update localized strings from CurseForge app from 2015-06-27.

  • Regenerate scripts based on SimulationCraft profiles from 2015-06-27.

  • Merge branch 'simulationcraft'.

    Pull in changes from SimulationCraft git master from 2015-06-27.

  • Import Tier18M profiles from SimulationCraft git master from 2015-06-27.

  • Allow SetCheckBox() and ToggleCheckBox() to use checkbox names.

    Change contributed by @LunaEclipse with modifications by @jlam and closes
    the following pullup requests on GitHub:

    • Closes #4.
  • Catch Ovale_UnitChanged in modules that use OvaleGUID:UnitGUID().

    This prevents event handlers from running out of order before OvaleGUID's
    event handler runs to fix up the unitID-to-GUID mappings.

  • Introduce new event Ovale_UnitChanged for when a unit ID changes GUID.

  • Honor Blizzard API for UnitHealth{,Max}() and fix UnitTimeToDie().

    UnitTimeToDie() should return INFINITY unless the unit's health can be

  • Add a "Use tagged enemies" option to Ovale.

    This new options determines the default behavior of the Enemies()
    condition in Ovale scripts. By default, it is false, which means that
    Enemies() returns "activeEnemies". If it is set to true, then it returns
    "taggedEnemies" from the state machine.

    Change contributed by @LunaEclipse with modifications by @jlam and closes
    the following pullup requests on GitHub:

    • Closes #2.
    • Closes #3.
  • Don't run lint on Lua files in the "scripts" directory.

    Those files are largely Ovale script code and it's not worth catching
    false positives embedded in the comments there.

  • Rune information is no longer available when zoning in.

    Fixes ticket 611 by @LunaEclipse.

  • Generate MMO-Champion rogue scripts based on profiles from 2015-06-23.

  • Ability names in SimulationCraft are case-insensitive.

  • Give the MMO-Champion sub rogue profile a more descriptive name.

  • Merge branch 'simulationcraft'.

    Pull in MMO-Champion rogue profiles from 2015-06-23.

  • Re-add MMO-Champion rogue profiles from the forum thread.

    The thread is still active for 6.2 and for the forseeable future, so
    import those profiles into Ovale.

    These profiles differ from the default ones distributed with
    SimulationCraft and are a testbed for changes to increase DPS in


First Previous Page 38 of 90 Next Last
  • #808

    When I log onto my Monk Ovale just doesn't seem to show up, no matter what command I type in or w/e options I mess with. Is the Monk simply not available yet for Ovale?

  • #807

    Error:  (I use it with Nerien's Ovale Scripts)

    1x Ovale-5.1.4\OvaleCompile.lua:457: script ran too long
    Ovale-5.1.4\OvaleCompile.lua:457: in function <Ovale\OvaleCompile.lua:439>
    Ovale-5.1.4\OvaleCompile.lua:619: in function "Compile"
    Ovale\Ovale-5.1.4.lua:94: in function "CompileAll"
    Ovale-5.1.4\OvaleFrame.lua:150: in function "OnUpdate"
    Ovale-5.1.4\OvaleFrame.lua:70: in function <Ovale\OvaleFrame.lua:69>

    self = <table> {
    CompileComments = <func> @Ovale\OvaleCompile.lua:554
    CompileDeclarations = <func> @Ovale\OvaleCompile.lua:569
    CompileInputs = <func> @Ovale\OvaleCompile.lua:560
    Compile = <func> @Ovale\OvaleCompile.lua:599
    DebugNode = <func> @Ovale\OvaleCompile.lua:644
    text = " SpellList(savage_roar_buff 52610 127538) AddFunction FFF { if TalentPoints(7) Spell(102355) if not TalentPoints(7) Spell(770) } AddFunction SavageRoar { if Glyph(127540) Spell(127538) if Glyph(127540 no) and ComboPoints(more 0) Spell(52610) } AddFunction TimeUntilTargetIsDead { target.TimeToDie() } AddFunction MinRatioForRipOverwrite { if {TimeUntilTargetIsDead() >120} 112 if {TimeUntilTargetIsDead() <=120} {{0.002*{180.00-TimeUntilTargetIsDead()}} + 1.00} * 100 } AddFunction RakeTickDamage { Damage(1822) * {1 + Mastery()/100} } AddFunction LastRakeTickDamage { LastSpellEstimatedDamage(1822) * {1 + LastSpellMastery(1822)/100} } AddFunction RakeTickDamageRatio { if TargetDebuffPresent(1822) {100 * RakeTickDamage()/LastRakeTickDamage()} unless TargetDebuffPresent(1822) 100.0 } AddFunction RipTickDamage { Damage(1079) * {1 + Mastery()/100} } AddFunction LastRipTickDamage { LastSpellEstimatedDamage(1079) * {1 + LastSpellMastery(1079)/100} } AddFunction RipTickDamageRatio { if TargetDebuffPresent(for generator) = <func> =[C]:-1
    (for state) = nil
    (for control) = "MainRotation"
    p = "MainRotation"
    t = "{ if BITWRange() and ComboPoints(more 0) and TargetDebuffPresent(1079) and TargetDebuffExpires(1079 2.9) Spell(22568) if CheckBoxOn(lucioles) and target.DebuffStacks(113746 any=1) <3 FFF() if TimeUntilTargetIsDead() >=6 and BuffPresent(135700) and TargetDebuffExpires(106830 3) and BuffExpires(108381) Spell(106830) if BITWRange() { if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and BuffExpires(108381) SavageRoar() if TalentPoints(17) and BuffExpires(108381) and BuffExpires(69369) and ComboPoints() >=5 Spell(132158) if ComboPoints() >=5 and TimeUntilTargetIsDead() >30 and RipTickDamageRatio() >=114 Spell(1079) if TargetDebuffPresent(1079) and ComboPoints() >=5 Spell(22568) } if BuffPresent(108381) and ComboPoints() >=5 and TimeUntilTargetIsDead() >6 and {TargetDebuffExpires(1079 2) or {TargetDebuffExpires(1079 6) and RipTickDamageRatio() >=100 and not BITWRange()}} Spell(1079) if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and BuffExpires(108381) and TalentPoints(17) SavageRoarnode = <table> {
    1 = <table> {}
    2 = <table> {}
    3 = <table> {}
    4 = <table> {}
    5 = <table> {}
    6 = <table> {}
    7 = <table> {}
    8 = <table> {}
    9 = <table> {}
    10 = <table> {}
    11 = <table> {}
    12 = <table> {}
    13 = <table> {}
    14 = <table> {}
    15 = <table> {}
    16 = <table> {}
    17 = <table> {}
    18 = <table> {}
    19 = <table> {}
    20 = <table> {}
    21 = <table> {}
    22 = <table> {}
    23 = <table> {}
    24 = <table> {}
    25 = <table> {}
    26 = <table> {}
    27 = <table> {}
    28 = <table> {}
    29 = <table> {}
    30 = <table> {}
    31 = <table> {}
    32 = <table> {}
    33 = <table> {}
    34 = <table> {}
    35 = <table> {}
    36 = <table> {}
    37 = <table> {}
    38 = <table> {}
    39 = <table> {}
    40 = <table> {}
    41 = <table> {}
    42 = <table> {}
    43 = <table> {}
    44 = <table> {}
    45 = <table> {}
    46 = <table> {}
    47 = <table> {}
    48 = <table> {}
    49 = <table> {}
    50 = <table> {}
    51 = <table> {}
    52 = <table> {}
    53 = <table> {}
    54 = <table> {}
    55 = <table> {}
    56 = <table> {}
    57 = <table> {}
    58 = <table> {}
    59 = <table> {}
    60 = <table> {}
    61 = <table> {}
    62 = <table> {}
    63 = <table> {}
    64 = <table> {}
    65 = <table> {}
    66 = <table> {}
    67 = <table> {}
    68 = <table> {}
    69 = <table> {}
    70 = <table> {}
    71 = <table> {}
    72 = <table> {}
    73 = <table> {}
    74 = <table> {}
    75 = <table> {}
    76 = <table> {}
    77 = <table> {}
    78 = <table> {}
    79 = <table> {}
    80 =

    Last edited by Aisenfaire on 12/7/2012 10:41:18 PM
  • #805

    Since Ovale doesn't have a dual profile option, is there a macro that can be made that switches the Ovale profile on command?

    For ex, I like having Ovale on in my secondary feral cat form, but don't want it on when im tanking. But I'd like if when I hit my macro that switches to my primary bear spec (which also switches a few things that I have built in like switching gear manager), I could also switch Ovale profiles at the same time.

  • #804

    All of my frames are showing the word "Focus" and nothing else.  Any idea what's up?

  • #806

    Logged in today and it is all fixed.  Strange.

  • #803

    I've decided to move the "unknown spells" warning so that it only appears if you ask for it explicitly by setting debug options for Ovale.  If you're a script author and want to verify your script, please enter the following into your chat window:

    /ovale toggledebug unknown_spells
  • #801

    50x Ovale-5.1.1\OvaleState.lua:83: attempt to index global "OvaleComboPoints" (a nil value) Ovale-5.1.1\OvaleState.lua:83: in function "Reset" Ovale-5.1.1\OvaleBestAction.lua:74: in function "StartNewAction" Ovale-5.1.1\OvaleFrame.lua:173: in function "OnUpdate" Ovale-5.1.1\OvaleFrame.lua:70: in function <Ovale\OvaleFrame.lua:69>

    Locals: self = <table> {  GetActionInfo = <func> @Ovale\OvaleBestAction.lua:78  Compute = <func> @Ovale\OvaleBestAction.lua:204  ComputeBool = <func> @Ovale\OvaleBestAction.lua:194  StartNewAction = <func> @Ovale\OvaleBestAction.lua:73 }

  • #802

    You should reinstall your Ovale addon... it looks like it's some mixture of 5.1.1 and 5.1.2 files.

  • #799

    Fix for Shaman 'unknown spell with ID strike':

    Replace line:

      SpellInfo(stormblast duration=15 sharedcd=strike cd=8 )


      SpellInfo(stormblast duration=15 sharedcd=stormstrike cd=8 )


      if SpellCooldown(strike) >=3 Spell(ascendance)


      if SpellCooldown(stormstrike) >=3 Spell(ascendance)


    Last edited by SvenLowry on 11/28/2012 4:33:32 AM
  • #797

    I am also getting spammed with unknown ID errors. 

  • #796

    I get spammed with the following in my chat whenever I change zones, specs, or enter/exit a vehicle:

    Ovale: Unknown spell with ID soul_reaper
    Ovale: Unknown spell with ID strangulate
    Ovale: Unknown spell with ID asphyxiate
    Ovale: Unknown spell with ID soul_reaper
    Ovale: Unknown spell with ID strangulate
    Ovale: Unknown spell with ID asphyxiate
    Ovale: Unknown spell with ID strangulate
    Ovale: Unknown spell with ID asphyxiate

    I am also running Nerien's Ovale Scripts, so I'm not sure if it's a problem with Ovale or Nerien's.

    I'm a DK, this happens in any spec for me.

    Last edited by sparrowlab on 11/25/2012 11:13:06 AM
  • #800

    Thanks! I'll ask around there and see if there's a fix.

  • #798

    This is a bug in Opisthobranch's DK script that's included in Nerien's Ovale Scripts.  You can try posting on the Ovale DK forum thread for his script to see if there are any fixes he could suggest.

  • #795

    Trueshot aura ? What's that ? (Ye I know but I can't find spell anymore and think it was removed also as glyph). Also hunter rotations have changed much lately imo. Mayhaps I will disable ovale until someone takes a look at it Undecided

    Last edited by Livanamako on 11/13/2012 9:12:53 PM
  • #793

    I seem to be having a problem with ovale, on my brewmaster monk, everytime I enter a dungeon ovale goes blank showing no rotation. But as soon as I leave the dungeon it starts working again. It just recently started doing this, I,ve tried reinstalling but still the same. And it seems to be only on my monk when it happens. Now if I go windwalker it works fine in dungeons, just on brewmaster spec in dungeons it don't work but outside of instances it works well





    Last edited by bamabandit on 11/1/2012 1:53:06 PM
  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

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

Gamepedia Free-shirt Giveaway