Get an Epic Experience with Premium

Ovale Spell Priority

Buffs & Debuffs Login to Add Favorites
  • World of Warcraft
  • 137,678 Monthly Downloads
  • Supports: 6.0.3
  • 2,033,780 Total Downloads
  • Updated 12/16/2014
  • Created 08/17/2008
  • 742 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: MIT License
  • Newest File: 6.0.34

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.


Why does Ovale update so often?

Ovale tracks the latest SimulationCraft profiles for the latest raid content, and as action priority lists are updated in SimulationCraft, they are mirrored fairly quickly in the Ovale default scripts.

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.

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.

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.

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.

tag 6.0.34
Johnny C. Lam <>
2014-12-16 12:26:56 -0500

Tagging as 6.0.34 release.


Johnny C. Lam:
    - Update frFR localization data.
    - Update default scripts to SimulationCraft git master from 2014-12-15.
    - Translate SimulationCraft's "gcd.remains" operand.
    - Enhance Name() script condition to accept a spell ID instead of a name.
    The name of the spell is then used for comparison to the unit name.
    - Add OvaleTotem module to keep state for player's totems.
    OvaleTotem tracks everything that is considered to be a totem in-game.
    This includes shaman totems, mage's Rune of Power and Prismatic Crystal,
    druid Wild Mushroom, and monk statues.  Casting a spell that summons a
    totem in the simulator will now actually summon the totem in the
    Modify script conditions to use the new state methods provided by
    OvaleTotem.  RuneOfPowerRemaining() is deprecated and the Totem*()
    conditions now directly take the ID of the spell that summons the totem.
    Decorate totem spell descriptions in the default scripts with information
    used by OvaleTotem.
    - Store the texture of the spell when scanning the spellbook.


First Previous Page 33 of 83 Next Last
  • #781

    Add cascada? :)) Seems like its really good now!

    Where can i find the best Spriest script?

    wht am i doing wrong?

    Define(halo_damage 120517)
    SpellInfo(halo_damage cd=40 )
    Define(cascade_damage 127628)
    SpellInfo(cascade_damage cd=25 )


    Last edited by lupqt on 10/17/2012 7:31:28 AM
  • #780

    druid skill plz ...Cry

  • #779

    Regarding bugs in the default class scripts:

    The Ovale default scripts are generated directly from the SimulationCraft T14H profiles by a parser that Sidoine wrote for the MoP release.  Bugs in the scripts indicate bugs in the parser that should be fixed, and tickets should be opened for those issues.  Right now, Sidoine is on a bit of a break due to work, so those issues might take some time before they are completely resolved.

    if you are looking for working scripts, there are scripts for some classes that can be used directly from the Nerien's Ovale Scripts addon, and additional scripts may be found in the Ovale forums.

  • #778

    I've been away from WoW for a few months now and I have upgraded to the latest Ovale and want to use LeafKiller's latest scripts. I have downloaded Nerien's scripts and they are sitting in my addon folder and I went into the /ovale code screen and reset the code to default.

    Now the problem is, how do I select Leafkiller's scripts as the one I want to use? I don't see an option anyway to do this.

    Edit: LoL after I posted this I found out how to select different scripts. The problem is/was that Nerien's scripts is not listed alphabetically for some reason and it is found at the very bottom of the Interface/Addons list in WoW. So for those of you who cannot find it, scroll to the very bottom of the addons list.

    Last edited by nToxiK on 9/30/2012 11:23:18 PM
  • #777

    druid skill plz ...Cry

  • #776

    I still can not get this to work properly with my feral druid. I tried downloading a script but it did nothing. Would it be possible for you to explain what I should try? Or if you are aware of whats happening with the feral druid rotation?

  • #772

    Hello, sorry if this seems a really simple question, but I have logged on today, and Ovale has gone right off my screen to the left, I have made it as big as possible but the Grab bar to move it is out of reach, is there a command to center the addon back onto the screen as as of now I can't see it without making it as big as possible ( but still can't get the relocate bar to trigger )


    thanks in advance

  • #773

    You can reset the profile to restore the Ovale default settings.  That will put your Ovale icons back to the middle of the screen.  If you have a custom script, you should copy it so it doesn't get lost in the reset.

  • #771

    I'm noticing that something is wrong with the Elemental Shaman rotation as it never tells me to use Earth Shock even when I have 7 stacks of lightning shield...


    if BuffStacks(lightning_shield) ==0 Spell(earth_shock)
    if BuffStacks(lightning_shield) >3 and target.DebuffRemains(flame_shock) >SpellCooldown(earth_shock) and target.DebuffRemains(flame_shock) <SpellCooldown(earth_shock) +TickTime(flame_shock) Spell(earth_shock)

    isn't triggering.

  • #770

    Not sure if this is an Ovale WITH Nerien issue, but:

    6x Ovale-5.0.6\OvaleCompile.lua:525: script ran too long Ovale-5.0.6\OvaleCompile.lua:525: in function "CompileInputs" Ovale-5.0.6\OvaleCompile.lua:570: in function "Compile" Ovale\Ovale-5.0.6.lua:78: in function "CompileAll" Ovale-5.0.6\OvaleFrame.lua:147: in function "OnUpdate" Ovale-5.0.6\OvaleFrame.lua:67: in function <Ovale\OvaleFrame.lua:66>

    Locals: self = <table> {  Compile = <func> @Ovale\OvaleCompile.lua:530  DebugNode = <func> @Ovale\OvaleCompile.lua:598  CompileInputs = <func> @Ovale\OvaleCompile.lua:521 } text = " SpellList(COMBATMIND 107970 109793 109795) SpellList(VELOCITY 107982 109787 109789) SpellList(SPELLPOWERTRINKETBUFF 73551 84968 90889 91019 91135 91136 92225 95875 97007 97008 99712 99741 102437 105134 107948) SpellList(HASTETRINKETBUFF 91041 92328) SpellList(MASTERYTRINKETBUFF 100403) SpellList(CORRUPTIONDEBUFF 172 87389) Spellinfo(980 duration=24) AddCheckBox(shadowandflame SpellName(17801) default) AddListItem(curse none "None") AddListItem(curse elements "Curse of the Elements" default) AddListItem(curse tongues SpellName(1714)) AddListItem(curse weakness SpellName(702)) AddListItem(bane none "None") AddListItem(bane agony "Agony") AddListItem(bane doom "Doom" default) AddListItem(bane havoc "Havoc" mastery=3) AddCheckBox(potions "Volcanic Potion" default) AddCheckBox(lightweave SpellName(75170)) AddCheckBox(powertorrent "Power Torrent") AddCheckBox(trinketdmcv "DMC: Volcano") AddCheckBox(trinketfoul "Foul Gift of the Demon Lord" mastery=2) AddCheckBox(trinketiotcm "Insignia of the Corrupted Minnode = <table> {} defines = <table> {  EMPOWEREDIMP = "47283"  LIFETAP = "1454"  RITUALOFSOULS = "29893"  IMPROVEDSOULFIRETALENT = "10940"  BANEOFHAVOC = "80240"  IMMOLATE = "348"  GLYPHOFLASHOFPAIN = "70947"  SOULHARVEST = "79268"  CORRUPTION = "172"  PETAXETOSS = "89766"  DEMONARMOR = "687"  SOULFIRE = "6353"  IMPROVEDSOULFIREBUFF = "85383"  HEALTHSTONE = "5512"  PETPURSUIT = "30151"  CREATEHEALTHSTONE = "6201"  DEMONSOULFELGUARD = "79462"  SHADOWANDFLAMETALENT = "10936"  POWERTORRENT = "74241"  SHADOWANDFLAMEDEBUFF = "17800"  CURSEOFWEAKNESS = "702"  BANETALENT = "10938"  VOLCANICPOWER = "79476"  ARCANETORRENTMANA = "28730"  VOLCANICPOTIONSPELL = "80481"  HAUNT = "48181"  BANEOFDOOM = "603"  VOLCANICPOTION = "58091"  PETSUCCUBUS = "Succubus"  BERSERKING = "26297"  SUMMONINFERNAL = "1122"  UNSTABLEAFFLICTION = "30108"  STONEFORM = "20594"  DEMONSOULIMP = "79459"  FELSPARK = "89937"  CHAOSBOLT = "50796"  DEMONSOULVOIDWALKER = "79464"  EMBERSTORMTALENT = "11181"  LIFEBLOOD = "55503"  SUMMONFELGUARD = "30146"  DEMONICEMPOWERMENT = "47193"  FELARMOR = "28176"  BLOODFURY = "33697"  PETSINGEMAGIC = "89808"  PETLEGIONSTRIKE = "30213"  DEMONSOULFELHUNTER = "79460"  BANEOFAGONY = "980"  SHADOWBOLT = "686"  METAMORPHOSISTALENT = "11044"  PETFELSTORM = "89751"  FELFLAME = "77799"  INCINERATE = "29722"  GLYPHOFMETAMORPHOSIS = "64318"  SOULSTONE = "5232"  DRAINSOUL = "1120"  SUMMONSUCCUBUS = "712"  SUMMONIMP = "688"  DEMONSOUL = "77801"  SUMMONFELHUNTER = "691"  GLYPHOFIMP = "56248"  CONFLAGRATE = "17962"  PETFELGUARD = "Felguard"  DEATHCOIL = "6789"  DARKINTENTBUFF = "85768"  SHADOWANDFLAMESPELL = "17801"  SUMMONDOOMGUARD = "18540"  SOULBURN = "74434"  SHADOWFLAME = "47897"  NETHERWARD = "91711"  MOLTENCORE = "71165"  SEARINGPAIN = "5676"  SOULSIPHONTALENT = "11112"  SHADOWBURN = "17877"  SHADOWTRANCE = "17941"  VOLCANICDESTRUCTION = "89091"  METAMORPHOSIS = "47241"  CURSEOFTONGUES = "1714"  LIGHTWEAVE = "75170"  PETIMP = "Imp"  PETFELHUNTER = "Felhunter"  DEMONSOULSUCCUBUS = "79463"  IMMOLATIONAURA = "50589"  DECIMATION = "63167"  HANDOFGULDAN = "71521"  SEEDOFCORRUPTION = "27243"  FOULGIFT = "102662"  DRAINLIFE = "689"  DARKINTENTTARGETBUFF = "85767"  JINXELEMENTSDEBUFF = "86105"  DARKINTENT = "80398"  CURSEOFTHEELEMENTS = "1490"  CREATESOULSTONE = "693" } unknownSpellNodes = <table> {} ParseDefine = <func> @Ovale\OvaleCompile.lua:396 subtest = <func> @Ovale\OvaleCompile.lua:353 ParseSpellName = <func> @Ovale\OvaleCompile.lua:505 ParseL = <func> @Ovale\OvaleCompile.lua:515 ParseCanStopChannelling = <func> @Ovale\OvaleCompile.lua:495 ParseSpellAddBuff = <func> @Ovale\OvaleCompile.lua:198 ParseSpellAddDebuf


  • #764

    Pretty annoying when you are notified to recast buffs that you already have just because somebody else of your class casts that buff (Power Word: Fortitude, Shadowform). Is there a fix for this?

  • #763

    Getting the following error upon logging characters in with the latest version. Keep up the great work on this Addon, feel naked without it  :)


    Date: 2012-09-21 10:57:01
    ID: 1
    Error occured in: Global
    Count: ∞
    Message: ..\AddOns\Ovale\OvaleCondition.lua line 1271:
       attempt to perform arithmetic on global 'duration' (a nil value)
       [C]: ?
       Ovale\OvaleCondition.lua:1271: classe()
       Ovale\OvaleBestAction.lua:304: Compute()
       (tail call): ?
       Ovale\OvaleBestAction.lua:493: Compute()
       Ovale\OvaleBestAction.lua:194: ComputeBool()
       (tail call): ?
       Ovale\OvaleBestAction.lua:194: ComputeBool()
       (tail call): ?
       Ovale\OvaleBestAction.lua:194: ComputeBool()
       Ovale\OvaleBestAction.lua:401: Compute()
       Ovale\OvaleBestAction.lua:194: ComputeBool()
       Ovale\OvaleBestAction.lua:401: Compute()
       Ovale\OvaleBestAction.lua:671: Compute()
       Ovale\OvaleFrame.lua:171: OnUpdate()

      Swatter, v4.0.3 (<%codename%>)
      NPCScanOverlay, v5.0.0.1
      AckisRecipeList, v2.4
      Altoholic, v5.0.001d
      AtlasLootLoader, vv7.00.01
      Auctionator, v3.0.5
      Babylonian, v5.1.DEV.332(/embedded)
      BadBoy, v11.100
      BagBrother, v
      Bagnon, v5.0.4
      Castbars, v
      Configator, v5.1.DEV.335(/embedded)
      DataStore, v5.0.001
      DataStoreAchievements, v5.0.001
      DataStoreAgenda, v5.0.001
      DataStoreAuctions, v5.0.001
      DataStoreCharacters, v5.0.001
      DataStoreContainers, v5.0.001
      DataStoreCrafts, v5.0.001
      DataStoreCurrencies, v5.0.001
      DataStoreInventory, v5.0.001
      DataStoreMails, v5.0.001
      DataStorePets, v5.0.001
      DataStoreQuests, v5.0.001
      DataStoreReputations, v5.0.001
      DataStoreSpells, v5.0.001
      DataStoreStats, v5.0.001
      DataStoreTalents, v5.0.001
      DBMCore, v
      DBMLDB, v
      Decursive, v2.7.1.1
      Gatherer, v4.0.3
      GTFO, v4.14.2
      IceHUD, v1.8.8 (Revision: 916)
      InFlightLoad, v5.0.001
      MikScrollingBattleText, v5.7.122
      MogIt, v3.0.5
      OmniCC, v5.0.3
      Ovale, v5.0.1
      Postal, v3.5.0
      QuestGuru, v2.2.13-50001
      QuestGuruTracker, v1.5.14-50001
      Recount, v
      sellgrey, v5.0.4 (01 sept 2012)
      SilverDragon, vv3.0
      SlideBar, v4.0.3 (<%codename%>)
      TargetPercent, v2.01
      Titan, v5.1.5.50001
      TitanBag, v5.1.5.50001
      TitanClock, v5.1.5.50001
      TitanGold, v5.1.5.50001
      TitanLocation, v5.1.5.50001
      TitanLootType, v5.1.5.50001
      TitanPerformance, v5.1.5.50001
      TitanRepair, v5.1.5.50001
      TitanVolume, v5.1.5.50001
      TitanXP, v5.1.5.50001
      VuhDo, v3.5
      VuhDoOptions, v3.5
      XLoot10, vz32-release
      XPBarNone, vv1.5.10
      BlizRuntimeLib_enUS v5.0.5.50001 <eu>

  • #765

    Please test r538 and let me know if that fixes the problem.  I think it only affected warlocks since their default script used the offending Ticks() condition.

  • #769

    Yes, latest version has now sorted the login error problem  :)  thank you very much for the speedy responses.

  • #767

    I've made a fix in r539 that hopefully clears this error.

  • 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 »

Plantronics GameCom Commander Headset Giveaway!