Get an Epic Experience with Premium

Ovale Spell Priority

Buffs & Debuffs Login to Add Favorites
  • 42 Likes
  • World of Warcraft
  • 177,164 Monthly Downloads
  • Supports: 6.0.3
  • 2,249,826 Total Downloads
  • Updated 02/01/2015
  • Created 08/17/2008
  • 767 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: MIT License
  • Newest File: 6.0.54
or

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.

Features

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

FAQ

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

Changes from version 6.0.53:

  • Translate SimulationCraft's "natural_shadow_word_death_range".

    This operand is true if the target's health is below 20 percent.

  • Translate SimulationCraft's "ptr" operand.

    Modify the PTR() script condition to have the same return semantics as the
    "ptr" operand: 1 if on the PTR, 0 otherwise.

  • Monks pool energy, too.

    Fixes problems with brewmaster monk APLs not falling thorugh to Tiger Palm
    when there's not enough energy for other actions.

  • If a spell is replaced, use the spell information for the replacement.

  • Monk: Fix energy cost of Rushing Jade Wind and note that RJW replaces SCK.

  • Monk: Add support for Glyph of Expel Harm.

  • Generalize "health percent" requirement check to players and pets.

    Add new requirement handlers to check the health percent:

    • health_pct
    • pet_health_pct

    Properly unregister requirement handlers in OnDisable() method.

  • Regenerate blood death knight scripts from improved SimC APL.

  • GetSpecialization() returns the non-global spec number, not the spec name.

  • Fix misspelled variable that was breaking WoWMock's GetSpecialization().

  • Death Knight: Suggest Blood Tap in the main icon for blood DKs.

  • Only suggest Anti-Magic Shell if there is incoming magic damage.

  • Extend DamageTaken() script condition to allow asking for magic damage.

    DamageTaken() now takes an extra named parameter "magic". If magic=1 is
    passed as a parameter, then DamageTaken() returns only the magic damage
    taken.

  • OvaleDamageTaken now tracks magic damage.

    The GetRecentDamage(seconds) method now returns two values: the first is
    the total damage taken and the second is the total magic damage taken.

  • Translate SimulationCraft's "<rune>.death" operand.

  • Support all level 60 talents in the Blood DK SimulationCraft APL.

    These changes improve upon the released SimulationCraft APL when measured
    using TMI-6. This profile has been fed back to the SimulationCraft
    project in issue #2419.

  • Regenerate MMO-Champion rogue scripts based on profiles from 2015-01-29.

  • Translate SimulationCraft's "energy.deficit" operand.

  • Translate SimulationCraft's "cooldown.honor_among_thieves.{up,down}".

    Ovale implements Honor Among Thieves as a hidden buff, so instead of
    checking for a spell cooldown, translate those operands into the
    appropriate checks for the hidden buff.

  • Accumulate and display statistics for the refresh intervals.

  • Allow for lazily refreshing the best action only when necessary.

    If the "Update Interval" is set to zero, then only refresh the best action
    when events trigger the need to refresh the game state. This reduces the
    CPU usage of the addon when out of combat.

  • Make use of "elapsed" parameter passed into OnUpdate() handler.

    The OnUpdate() handler was manually computing an elapsed value, but was
    calling GetTime() on each frame refresh. This change avoids some extra
    function calls.

  • The best action should be refreshed whenever an event happens.

    Add entries into Ovale.refreshNeeded whenever we receive an event that
    changes the game state so that the best action calculation is not delayed.

Comments

First Previous Page 40 of 86 Next Last
  • #735
    Quote from Vailwolf »

    Feral Druid still seems off. It's telling me to do Savage roar over and over again. 

    Same here

  • #718

    constant errors in the warlock module  ¬¬ 

  • #717

    Can someone tell me if im doing somthing wrong? I download the new version for mop. By the way thanks for this addon. When i was using it agaist the dummies it work great. I was playing survial hunter .But when i was using in a raid it would start the rotation right then hang up on cobra shot agiast raid bosses, 

    Last edited by Aquaskoal on 8/30/2012 7:34:31 AM
  • #722

    Feel free to see my post here: http://wow.curseforge.com/addons/ovale/forum/hunter/42272-updated-5-0-4-survival-hunter-script/

    I was having similar issues.

  • #716

    Just want to say thank for updating this mod. Most useful mod ever. Warlock rotation is bugged saying like others have said to cast haunt and it has already been cast and is up etc. Anyway thanks its working. Anyway Ill keep trying the betas and alpha's when they come out. I find this mod useful as it works as a dot tracker I find the bar dot trackers too complicated.

  • #715

    Hello

    Great add-on =)

    But since the 5.x patch the assassin rogue script has been strange, it suggest everything correctly but it never suggests envenom it always does rapture (or whatever that 5cp dot is) instead.

    Strangely enough I still do 32k dps without envenom on a raid dummy without any cool downs or buffs, normally it was 28k before patch with envenom, so yeah.

    Hopefully a fix will be out soon.

  • #714

    Yes on my druid it's telling me just to shred and savage roar a lot too. Patience people, obviously it needs an update. 

  • #713

    It keeps telling me to use shred and savage roar on the feral druid and that's it.

  • #712

    constant errors in the warlock module and telling me to constantly soulburn or haunt and nothing else.

  • #710

    (Hi Thanks alot for taking the time to update his amazing addon, but i seem to be getting this Lua Error)

    Hope this helps

     

    Message: Interface\AddOns\Ovale\OvaleBestAction.lua:634: attempt to concatenate local 'n' (a nil value)

    Time: 08/29/12 16:53:43
    Count: 87
    Stack: Interface\AddOns\Ovale\OvaleBestAction.lua:634: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:194>
    (tail call): ?
    Interface\AddOns\Ovale\OvaleBestAction.lua:484: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:194>
    (tail call): ?
    Interface\AddOns\Ovale\OvaleBestAction.lua:483: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:194>
    (tail call): ?
    Interface\AddOns\Ovale\OvaleBestAction.lua:185: in function `ComputeBool'
    Interface\AddOns\Ovale\OvaleBestAction.lua:462: in function `Compute'
    Interface\AddOns\Ovale\OvaleBestAction.lua:185: in function `ComputeBool'
    Interface\AddOns\Ovale\OvaleBestAction.lua:392: in function `Compute'
    Interface\AddOns\Ovale\OvaleBestAction.lua:663: in function `Compute'
    Interface\AddOns\Ovale\OvaleFrame.lua:162: in function `OnUpdate'
    Interface\AddOns\Ovale\OvaleFrame.lua:58: in function <Interface\AddOns\Ovale\OvaleFrame.lua:57>

    Locals: self = <table> {
    GetActionInfo = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:68
    Compute = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:194
    ComputeBool = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:184
    StartNewAction = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:63
    }
    element = <table> {
    a = <table> {
    }
    type = "operator"
    b = <table> {
    }
    nodeId = 100
    result = <table> {
    }
    operator = "/"
    }
    startA = 0
    endA = nil
    prioA = 3
    elementA = <table> {
    value = 100
    type = "value"
    rate = 0
    origin = 0
    }
    startB = 0
    endB = nil
    prioB = 3
    elementB = <table> {
    value = 0
    type = "value"
    rate = -1
    origin = 20831.134
    }
    a = 100
    b = 0
    c = 0
    x = 0
    y = 20831.134
    z = -1
    l = nil
    m = nil
    n = nil
    result = <table> {
    type = "value"
    }
    (*temporary) = <function> defined @Interface\AddOns\Ovale\Ovale.lua:201
    (*temporary) = <table> {
    SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:383
    EnableModule = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:348
    modules = <table> {
    }
    baseName = "Ovale"
    IterateEmbeds = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:458
    GLYPH_ADDED = <function> defined @Interface\AddOns\Ovale\Ovale.lua:142
    casesACocher = <table> {
    }
    Printf = <function> defined @Interface\AddOns\Ovale\Libs\AceConsole-3.0\AceConsole-3.0.lua:69
    PLAYER_REGEN_DISABLED = <function> defined @Interface\AddOns\Ovale\Ovale.lua:168
    defaultModuleState = true
    IsEnabled = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:467
    DisableModule = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:366
    UpdateVisibility = <function> defined @Interface\AddOns\Ovale\Ovale.lua:225
    Log = <function> defined @Interface\AddOns\Ovale\Ovale.lua:201
    RegisterMessage = <function> defined @Interface\AddOns\Ovale\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
    UnregisterMessage = <function> defined @Interface\AddOns\Ovale\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
    ToggleCheckBox = <function> defined @Interface\AddOns\Ovale\Ovale.lua:313
    dropDowns = <table> {
    }
    SetEnabledState = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:440
    enabledState = true
    RegisterEvent = <function> defined @Interface\AddOns\Ovale\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
    DebugListAura = <function> defined @Interface\AddOns\Ovale\Ovale.lua:56
    UNIT_INVENTORY_CHANGED = <function> defined @Interface\AddOns\Ovale\Ovale.lua:124
    traced = false
    checkBoxes = <table> {
    }
    frame = <table> {
    }
    IsChecked = <function> defined @Interface\AddOns\Ovale\Ovale.lua:294
    score = 0
    Enable = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\AceAddon-3.0.lua:315
    listes = <table> {
    }
    GetModule = <function> defined @Interface\AddOns\Ovale\Libs\AceAddon-3.0\Ac

  • #711

    Use http://pastebin.com/ for large things like this in the future.

  • #709

    Addon seems to be having issues with proc bases abilities:


    Maelstrom Weapons for Enhancement

    Bloodsurge for Fury

    Overpower for Arms

    It can't recognize that these are up and is not pushing them into their priority.

  • #708

    Thanks so much for continuing this.  I have alts of every class and multiple specs, and this is a HUGE sanity saver!

  • #707

    I cannot menage to get "TargetDistance" function to work. I have instaled LibRangeCheck-2.0 but it is not working. Similar problem with "TargetDeadIn" function also.

  • #706

    I'm sorry I'm a bit noob in programmation, I want to do a simple rotation with an unique spell icon the order will be : 1.Stormstrike 2.Lava Lash 3. Unleash elements. 

    Nothing else. (Stormstrike is 8secs CD, lava lash 10 and unleash elements 15).

    How can I do that, code is really complex for me :(

    Thanks a lot for your future help in coding :)

    Last edited by glonglon on 8/29/2012 5:03:23 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