OPie

OPie is a radial action-binding addon: it lets you group actions into rings which appear when you hold down a keyboard or mouse binding. When you release the binding, OPie will perform an action based on where your mouse cursor is.

Use OPie to reduce the amount of clutter on your action bars: rings can contain your abilities, items, professions, battle pets, equipment sets, macros, and raid or world markers. Some rings for common class abilities and professions are included, as is a special quest items ring which automatically makes all of your quest and quest-starting items easily accessible. Other addons may add additional rings; for example, Spade uses OPie rings to let you chose the seeds you want to plant on your farm.

Ring snapshots and tutorial/gameplay videos
You can create snapshots of your custom rings to share with other players; if you like, you can post them in the comments section on this page. Likewise, if you've created a video showing how you use OPie, I would very much like to hear about it.

Bug reports and feature requests
If you encounter any problems while using OPie, or think of useful functionality to add to OPie, use the OPie ticket tracker if possible, or leave a comment here.

# OPie Lime #
* You can now snapshot your custom OPie rings to share them with other players.
* Changes made in OPie configuration panels are now applied immediately (outside of combat lockdown), and can always be undone entirely by clicking Cancel.
* New, configurable "Selected slice (keep ring open)" binding allows you to use the currently-selected slice without closing the ring (Bindings → Slice Bindings).
* Slices can now be hidden based on a macro conditional evaluated when the ring is opened.
* Improved support for spells with automatically recharging charges, e.g. Roll.
When some, but not all, charges have been expended, OPie displays a semi-transparent cooldown spiral and a spinning spark around the slice's border to indicate the time remaining until the next charge is available.
Added a separate "Show recharge numbers" option to display time until next charge is available as a number.
* You can now adjust the position at which OPie rings are displayed through the configuration UI.
* An Extra Action Button slice can now be added to custom rings.
* OPie can now automatically select matching slice colors based on slice icons.
* The Quest Items ring now includes the Cooking School Bell and Blingtron 4000 if you have not yet completed those daily quests today.
* Cooldowns are now displayed for battle pet slices.
* Slices that are unusable due to being out of range now have a red stripe in the upper left corner of the icon.
* Slices that are unusable due to a lack of resources now have a blue stripe in the upper left corner of the icon.

## Changes ##
* Custom rings limited to other classes or characters can now be modified through the Custom Rings options panel (Inactive rings sub-menu).
* Changing a ring's binding through the Custom Rings configuration panel now changes both the default and active profile's binding for the ring.
* Ability names in custom OPie macros are automatically converted into spell links when the macro is saved.
You can temporarily revert links to text representations by right-clicking or alt-right-clicking them.
* Many bundled rings have been updated.
* Improved custom macro parser to support {{spell:id}} tags in castsequence/castrandom macros, /cast !{{spell:id}} syntax, and preserve empty clauses.
* Improved default mount detection for {{mount:ground}} and {{mount:air}} tags in OPie macros.
* Deleting a ring now also deletes the related per-ring options.
* Removed the option to display an icon at the center of an OPie ring.
* Removed Challenger's Paths ring.
* Masque is no longer supported.
* The various overlay dialogs now shroud OPie configuration panels from mouse wheel events.
* This update changes slices using the pre-Lime default slice color (e5ff00) to use icon-dependent colors.
* Non-/cast-like custom macros are now always considered usable.
* Unusable slices are now dimmed rather than faded.

## Bug fixes ##
* Fixed an error that occurred when navigating away from slice detail view when the macro box is focused and modified.
* Fixed an error that occurred when the Unbind button was clicked.
* Fixed an error that occurred when resetting per-slice bindings for a specific ring to default values.
* Fixed an error that occurred during slice selection when ring scale was set to low values.
* Fixed an issue preventing unbinding a ring from releasing the binding to other rings.
* Fixed an issue preventing correct macro feedback for /castsequence macros with a single spell and a specified reset condition.
* Fixed an issue causing the ring contents column in the custom ring configuration panel to not be updated correctly when slices were deleted under some circumstances.
* Fixed an issue causing all battle pets to appear twice in the battle pet slice category in Patch 5.2.
* Fixed a graphical issue in the cooldown animation.
* Fixed an issue causing nested ring slices to overlap in some circumstances.
* Items on cooldown are no longer indicated as usable.
* Fixed an issue causing the "Show recharge numbers" option to be ignored (in favor of "Show cooldown numbers") when performing Spinning Crane Kick.
* Fixed an error that occurred when saving custom macros while playing a class that has a spell flyout ability.
* Fixed an issue preventing nested ring rotation from being saved.
* Corrected slice icon display for non-active /cast {{spell:id}}-like macros in the custom rings panel.
* Fixed an issue preventing OPie slash commands from opening correct configuration panels on first use in Patch 5.3.
* The "Make rings top-most" option is no longer disabled when "Activate on left click" option is unchecked.
* Fixed an issue preventing the overlay dialog used in the option panels from being cleared correctly in some circumstances.
* Fixed an issue causing option panel descriptions to be truncated incorrectly.
* Fixed incorrect ability out-of-range feedback for self-cast abilities and actions.

Originally posted by nelothi
do you have any plans, or desire, to addapt a way to select one of the 4 schools of totems (on their own circle) and depending on what you select, it would take you to that schools own circle, filled with every totem that you know of that school.

Originally Posted by Quaunaut

This way, you could even make a 'hub' ring, or several of them for that matter, that could select which ring it would want via click. You could even mix up a single ring, with links to other rings in it(perhaps signified by a lower-opacity ring behind the icon) as well as actual abilities.

The problem is really that the click isn't free -- clicking would result in the original binding being considered released, so people using rings in press-move-release mode would be stuck. I'm considering supporting multiple rings on the same binding using mouse wheel scrolling between the rings.

Originally Posted by nelothi

im sure every shammy out there would love you for it, as totemus is broaken, and doesnt look to be updated.

You could probably configure LunarSphere to get something more similar to totemus than OPie would be.

Known Issue update
Rings with names containing ":" character do not currently activate when relevant bindings are pressed. This will be fixed in the next release.

this addon is absolutly great. i use it for every one of my toons that i have.
the one thing that i can say is missing from this mod is totem utility.

do you have any plans, or desire, to addapt a way to select one of the 4 schools of totems (on their own circle) and depending on what you select, it would take you to that schools own circle, filled with every totem that you know of that school.

im sure every shammy out there would love you for it, as totemus is broaken, and doesnt look to be updated.

Originally posted by Foxlit I'm actually contemplating adding that, it certainly got a lot more feasible with 3.0. Either way, figuring out a reasonable UI to configure that behavior is going to take some time.

Forgive me if you're not looking for input, but I figure the simplest way you could do it, is to use the same UI as you do for the rings now, except when you create a new ring, you select an icon, name, and color for it as well.

This way, you could even make a 'hub' ring, or several of them for that matter, that could select which ring it would want via click. You could even mix up a single ring, with links to other rings in it(perhaps signified by a lower-opacity ring behind the icon) as well as actual abilities.

Something I've been wanting since Day 1, and have even looked into ways to do it for myself(and have failed thusly), is the ability to change rings from whichever I'm in.

For example, I play a Shaman. Lets say I want to have a separate ring for Water, Earth, Fire, and Air totems, but I only want to use one key for them all.

I could specify my water totem as a default, and then, when I'm holding down the key for my water totems, I could roll my mousewheel to go through the set- effectively giving me multiple rings to one binding, under a singular category(I even imagine the animation to it not being unlike a revolver).

Do you know of any way this could be achieved currently, and if not, is this a feature you'd be willing to look into?

Just wanted to say 'thanks' for taking the time to build this mod. I used a pre-2.0 mod called "Sprocket" that did something similar but it was never updated for 2.0 and I always missed it - but now it's back and even better.

Originally posted by stevebob
For example, on my paladin, I wanted a ring for blessings, and I wanted the greater blessings to show when I hold the shift key. I could not find a way to do this via the configuration interface.

You're absolutely right -- there's no way to construct that internal representation using the UI. It's not exposed as it'd add complexity to modifying the entries containing two spells, and you can duplicate the functionality reasonably well using custom macro slices. The reason it exists internally is to allow me to create a single description that'd work on any localization of the WoW client; players are understandably not subject to that constraint.
Your SV modification solution is rather creative; you should probably take a look at Rings\RKRings.lua, which would probably tell you more about how rings are created. A bit of modification there, and you can package custom rings into an addon instead of modifying saved vars

also, a few questions on the syntax in the file in SavedVariables

rtype="modrank" tells the custom ring constructor that it should create a slice containing a macro resembling the one shown below/cast [mod] (spell identified by id2); (spell identified by id)

You cannot switch the modifier key; nor does it require any specific modifier key -- as long as you're any modifier key that is not a part of the ring binding, you'll cast the alternate spell.

The comments after table entries are generated by Blizzard's SV dumping mechanism, and denote the index of the table in its parent table (which coincides with the spot on the ring). As it's a comment, it doesn't actually do anything.

Judging by the relative quiet, losing rings has at least become a bit less frequent. I'm hesitant to proclaim the issue resolved -- the SV loss fixed in pub8 doesn't account for some of the original reports; but if it fails to occur again, this may just have been the last of it.
You're welcome!

Originally Posted by duhwhat

please add dreadsteed back to the default lock demon ring.

Generally, built-in mount slices are broken by 3.0; I don't expect a quick fix for this, as handling 3.0 mounts properly would either require additional Blizzard API or an excessively large data library. Your report probably means that your dreadsteed is now your companion rather than a spell book summon.
Depending on how future releases pan out, the mount-containing rings may become user-editable to mitigate this. We'll see.

The only issue I can actually confirm is the "World Server is Down" loss of custom rings; I can't reproduce random losses on log outs, nor are the reports of those rich in detail.
If you (all of you!) are actually losing ring data on (every?) log out, try disabling all other addons, and see if the issue persists. If you could somehow narrow it down to addon combinations, or specific log out conditions, or anything more specific "it just does it randomly", it'd be a great help in getting this fixed.

I was going to test all my addons against OPie, so I redid all my custom rings, reloaded the UI (/rl) and everything was fine. Then I logged off and logged back in and everything was fine. I logged out of the game completely and logged back in and everything was fine. I restarted my computer and logged back in and everything was fine. Seems to be fixed. Will let you know if it happens again.

I notice, on my mage, a default ring is created for Mage Travel. It has all of the mage teleports and portals. The teleports show by default and then the portals are shown when I hold down the "Shift" key. I love this feature. The only problem is I can't duplicate this behavior (easily) with custom rings.

For example, on my paladin, I wanted a ring for blessings, and I wanted the greater blessings to show when I hold the shift key. I could not find a way to do this via the configuration interface. I ended up opening the OPie.lua file in the SavedVariables folder, looked at how the Mage Travel ring worked and copied that structure for the blessings. It works flawlessly, but, I'm wondering, is there anyway to do this via the configuration interface?

also, a few questions on the syntax in the file in SavedVariables, I am at work at the moment so I don't have access to it so this is off the top of my head, the file included the following for each ring entry:

{
id=33690,
rtype="modrank",
id2=33691,
} --[#]

where id is the spell id of the spell to cast when there is no modifier and id2 is the spell id of the spell to cast when you hold down the Shift key. What does rtype="modrank" mean? How do you switch the modifier key? (I don't mind Shift, it actually works well for me, just curious). the comment after the ring entry, is this a place holder for it's spot on the ring? the # is usually a number, 1, 2, 3, etc.

Originally posted by Foxlit
[b]Not all live servers; some regions have not updated yet. Because the last few updates address issues relevant to both 2.4 and 3.0 users, I haven't seen it fit to cut 2.4 support just yet.
It will happen eventually; it's just that I wouldn't like to leave people stuck on 2.4 with known issues. A different part of the reason is that it's still 2.4 code (with 3.0 provisions) that is being released -- a proper 3.0 release would involve removing those workarounds, something I haven't yet been able to get to.

Originally posted by AcidWeb
Why you want support 2.4? All live servers working now on 3.0.2.

Not all live servers; some regions have not updated yet. Because the last few updates address issues relevant to both 2.4 and 3.0 users, I haven't seen it fit to cut 2.4 support just yet.
It will happen eventually; it's just that I wouldn't like to leave people stuck on 2.4 with known issues. A different part of the reason is that it's still 2.4 code (with 3.0 provisions) that is being released -- a proper 3.0 release would involve removing those workarounds, something I haven't yet been able to get to.

Originally posted by frosteye
I cant edit the daemon ring and are missing the infernal and doomguard icons

It's a balance between exposing every demon you could summon and having a reasonable amount of things on that ring. I'll probably end up making that ring editable now that mount support is somewhat broken; either way, you can create a separate demons ring and use that instead of the built-in one until we figure something out.

Originally posted by Foxlit Intended, as it is compatible with both 2.4 an 3.0, and you can only specify one interface version. Rather than editing any files, check "Load out of date addons" and be done with it.