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.
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. Tank scripts based on guides from Icy Veins are maintained by the Ovale_TankScripts addon.
Please use the Discord Server to submit scripts or discuss them. If you want to report bugs, use the ticket manager. You may contribute code on our Github project or help with translation.
See the video of a survival hunter using Ovale during Wrath of the Lich King.
Features
- Tracks DoTs, buffs, debuffs, cooldowns, combo points, runes, mana -- everything that a player would need to decide what to do.
- Adapts to your equipment and talents.
- 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.
- Uses LibButtonGlow-1.0 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. The currently supported action bars are the default UI and Dominos.
Why don't my abilities flash on my action bars?
You may be running an action bar addon, e.g., Bartender4, etc., that does not use the Blizzard action bar frames. The currently supported action bars are the default UI and Dominos.
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.
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.
If only there were more alternatives... Hekili doesn't support frost mage (?!) and there's nothing else that works as well. This here looks abandoned.
In reply to Billzilla:
Not one to take away from another author but here to help another wow player as I too was looking for an alternative to hekili. Try using Conditioner, yes thats the name. Its not perfect but it lets you make your own rotation and is updated for dragon flight. Think custom hekili style. I use Icy-Veins and Wowhead rotation guides as a base and then custom tune it to my playstyle and how I want things to pop.
Now causing UI to disappear completely, as well as preventing movement. Alt-Z does not fix it. I have to /reloadui blind every time this happens, and it only takes about 30 seconds for UI to disappear.
will you update for dragonfligt I hope so this has been my addon for spell priority for many years if not what a good addon to use that work with DF?
Dude when you going to update to patch 9.1.15
is there a version of this for TBC classic?
Can someone maybe briefly explain how I do this with my own scripts per class.
That would be cool.
Is it possible to make an interrupt ability (e.g: interrupt shot of hunter) flashing again in the action bar, when a mob is casting a spell that can be interrupted? I am using the latest Ovale version and Spellflash.
Absolutely useless for fury. Shows condemn even when it's on CD, which makes it worthless. In that way it can show only Recklessness, Condemn, Trinket and Rampage when usable.
As noted by others, something is broken in the Balance Druid script. The game is unplayable with Ovale enabled when in Balance spec.
In reply to surlybender:
Yes. I am absolutely seeing this. Ovale is using an excessive amount of CPU and the game becomes super laggy and is stuttering.
Hi there, just wondering if you (developer) have plans to make the addon compatible with other ui addons such as Elv Ui or so.
I will donate if so, this addon is such a good help for altholics.
Thanks in advance mate, great job!
Unfortunately, I still have a graphic stutter in the game with the Druid in Balance Spec.
Please help.
I am not sure why but I can still not get this to work on any toon.
In reply to killerclown67:
You probably have the same problem as me, using a UI addon that is not compatible with it.
The script for Fire Mage isn't great, but that isn't actually my comment/question. I'm just wanting to pare this down to the one window that shows me when to interrupt. No other addons seems to do just that, which is bonkers! I'm not looking closely enough to my target's bar to track that nonsense on top of everything else. So! Is there a way to configure Ovale to display ONLY that? I'm assuming I could do a custom script and then select the "hide empty icons" options?
If so, could anyone help me with that script? Or suggest an addon that only does that? I'll still be using Ovale for my other toons, still it will still be installed regardless.
In reply to Karavanth:
You should try WeakAuras addon, there are tons of scripts for it on Wago that can do what you're looking for.
Problems with Dudu Spec when balance is selected. Then I always have a stutter in the game.
Getting lots of Lua Errors ...
Message: Interface\AddOns\Ovale\states/SpellBook.lua:302: Usage: IsSpellKnown(spellID[, isPet])
Time: Sun Jan 24 10:52:14 2021
Count: 2
Stack: Interface\AddOns\Ovale\states/SpellBook.lua:302: Usage: IsSpellKnown(spellID[, isPet])
[string "=[C]"]: ?
[string "@Interface\AddOns\Ovale\states/SpellBook.lua"]:302: in function `IsKnownSpell'
[string "@Interface\AddOns\Ovale\engine/compile.lua"]:345: in function `AddMissingVariantSpells'
[string "@Interface\AddOns\Ovale\engine/compile.lua"]:431: in function `EvaluateScript'
[string "@Interface\AddOns\Ovale\ui/Frame.lua"]:149: in function <Interface\AddOns\Ovale\ui/Frame.lua:131>
[string "=(tail call)"]: ?
Locals: (*temporary) = -327368
------------
Message: Interface\AddOns\Ovale\ui/Frame.lua:83: attempt to index local 'action' (a nil value)
Time: Sun Jan 24 10:53:27 2021
Count: 6569
Stack: Interface\AddOns\Ovale\ui/Frame.lua:83: attempt to index local 'action' (a nil value)
[string "@Interface\AddOns\Ovale\ui/Frame.lua"]:83: in function `goNextIcon'
[string "@Interface\AddOns\Ovale\ui/Frame.lua"]:165: in function <Interface\AddOns\Ovale\ui/Frame.lua:131>
[string "=(tail call)"]: ?
Locals: self = <table> {
actionBar = <table> {
}
runner = <table> {
}
ovaleSpellFlash = <table> {
}
baseState = <table> {
}
ovaleFuture = <table> {
}
iconsFrame = <unnamed> {
}
dragHandleTexture = <unnamed> {
}
updateFrame = OvaleUpdateFrame {
}
tracer = <table> {
}
height = 0
localstatus = <table> {
}
content = <unnamed> {
}
ovaleCompile = <table> {
}
visible = true
ovaleEnemies = <table> {
}
ovaleOptions = <table> {
}
OnWidthSet = <function> defined @Interface\AddOns\Ovale\ui/Frame.lua:432
traceLog = <table> {
}
ovaleState = <table> {
}
LayoutFunc = <function> defined @Interface\AddOns\Ovale\libs\AceGUI-3.0\AceGUI-3.0.lua:625
OnCheckBoxValueChanged = <function> defined @Interface\AddOns\Ovale\ui/Frame.lua:448
handleContentResize = <function> defined @Interface\AddOns\Ovale\ui/acegui-helpers.lua:45
handleFrameResize = <function> defined @Interface\AddOns\Ovale\ui/acegui-helpers.lua:35
userdata = <table> {
}
scripts = <table> {
}
width = 0
combat = <table> {
}
children = <table> {
}
checkBoxWidget = <table> {
}
ovaleDebug = <table> {
}
type = "Frame"
base = <table> {
}
petFrame = <unnamed> {
}
ovale = <table> {
}
events = <table> {
}
ovaleSpellBook = <table> {
}
listWidget = <table> {
}
OnDropDownValueChanged = <function> defined @Interface\AddOns\Ovale\ui/Frame.lua:453
actions = <table> {
}
ovaleFrameModule = <table> {
}
controls = <table> {
}
ovaleBestAction = <table> {
}
frame = OvaleIcons {
}
OnHeightSet = <function> defined @Interface\AddOns\Ovale\ui/Frame.lua:440
timeSinceLastUpdate = Infinite
}
action = nil
left = 0
top = 0
maxWidth = 0
maxHeight = 0
profile = <table> {
showHiddenScripts = false
list = <table> {
}
source = <table> {
}
code = ""
check = <table> {
}
overrideCode = ""
standaloneOptions = false
apparence = <table> {
}
}
margin = 4
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'action' (a nil value)"
Could you please add an option to hide the icon border. Thank you for a great addon.