Get an Epic Experience with Premium

Ovale Spell Priority

Buffs & Debuffs Login to Add Favorites
  • World of Warcraft
  • 12,882 Monthly Downloads
  • Supports: 6.2.3
  • 2,631,073 Total Downloads
  • Updated 01/01/2016
  • Created 08/17/2008
  • 863 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: MIT License
  • Newest File: 6.2.16

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.16

Changes from version 6.2.15:

  • Only suggest the legendary ring if it is equipped and usable.

  • Regenerate scripts to re-add suggesting on-use trinket actions.

  • Merge branch 'simulationcraft'.

    Add "use_item" actions to SimC APLs so that script code for on-use
    trinkets is properly generated.

  • Add "use_item" to APLs to properly generate code for on-use trinkets.

  • Suggest using the legendary ring separately from trinkets.

    Also fix a bug where non-spell actions were not emitted by the SplitByTag

  • The engineering glove enhancement was removed ages ago.

  • Import latest from curseforge-packager project.

  • Update localized strings from CurseForge app from 2015-12-30.

  • Regenerate scripts based on SimulationCraft git master from 2015-12-17.

  • Avoid emitting "call_action_list" as a missing symbol.

    Filter out special actions from the list of actions that are regarded as
    requiring symbols.

  • Add trinket information for the Soul Capacitor.

  • Add item ID for the Empty Drinking Horn.

  • Translate SimC's "equipped.<item>" to allow checking for equipped items.

  • Translate SimC's "eclipse_dir.<name>" expressions for balance druids.

  • Translate SimC's "solar_max" for balance druids.

  • Teach OvaleSimulationCraft about "@" absolute value operator.

    Limit its translation to simple inequalities involving absolute values by
    converting to the appropriate union or intersection of one-sided
    inequalities. The latter are more suitable for translating into the
    equivalent Ovale timespan concept.

    This fixes the translation of "@" used in balance druid APLs involving

  • Druid: Move Cenarion Ward back to short CD icon for Guardian druids.

    Cenarion Ward should not be used on cooldown since it wastes a GCD that
    could be used to generate rage and is situational in providing a burst
    heal for the tank.

  • Merge branch 'simulationcraft'

    Pull in changes from SimulationCraft git master from 2015-12-17.

  • Import Tier18M profiles from SimulationCraft git master from 2015-12-17.


First Previous Page 42 of 92 Next Last
  • #784

    Protection paladin is not implemented in the default scripts at this time.  Please see the top line of the description above.

  • #782

    When is the issue with Ovale going to be resolved in regards to eating up memory and killing FPS? Anytime I get into combat and use "Tiger's Fury" for example, my fps drops from 50-60 down to 3-7. Ovale addon usage goes from around 780 kb to nearly 10 mb and stays there even after leaving combat.. I am using the latest versions of both Ovale and Nerien's Script.

  • #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.

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

Star Trek Online Wiki Editing Contest