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.

I did some investigating, and it has something to do with Bartender 4. If I turn it off, I don't get the bug. When I turn it on, I get the bug.

However, I think there's probably more to it than that, as Bartender is a hugely popular addon, and I seem to be the only one running into this issue. I'm also on a Mac running the latest version of the mac OS. Maybe I'll set up boot camp to see if the OS is part of the issue.

Is there a way to have Opie auto populate a ring with, for example, all food buff items? Similar to what Autobar does? Finding it tough to maintain when my food changes - have to keep updating the rings.

There is not, although that would be useful. It's not impossible, either; figuring out what "all the food buff[/drink/flask/potion/elixir/bandage] items" are, and encoding that information somehow, is a bit annoying.

Foxlit - I noticed that the pre-set Quests ring doesn't show all quest items by default. Is it searching for something specific to be able to display them? I have two items in my backpack and they are both labeled "Quest Item" - only one shows.

I did some investigating, and it has something to do with Bartender 4. If I turn it off, I don't get the bug. When I turn it on, I get the bug.

I think the issue there might be that Bartender thinks it has a legitimate claim to the binding, and so eventually steals it for itself. I don't think OPie normally reasserts binding control, so that might explain what's going on there.

Originally Posted by Toran

I noticed that the pre-set Quests ring doesn't show all quest items by default. Is it searching for something specific to be able to display them? I have two items in my backpack and they are both labeled "Quest Item" - only one shows.

It doesn't look at the tooltip, in any case. There's an item type return from GetItemInfo that it does consult, coupled with another detection mechanism for items you receive upon accepting a quest. It usually works, probably with a few rare exceptions.

[Done properly, it'd probably look at the tooltip as well, but that seemed a bit excessive when coding that ring.]

First of all, I love your addon. It really comes in handy on my mage and my pally. I have it set up for most things but I've been redesigning my ui lately so I got a couple of quick questions:

Is there any way to do a ring of minimap buttons? I use tidyminimap to get them all lined up nicely but a ring would be far better. I tried looking at comments but you have a looot of comments. If anyone has attempted anything like it before, could you please just point me to a page or instructions and I can try to fiddle with it. Yes I've seen the broker option but I'm kind of trying to bypass broker addons.

Is there any way to bind the ring to a button on the screen. It's awesome to have stuff keybound but there are certain things I wouldn't mind clicking on with ring appearing around it? Or anywhere?

Finally, is there a way to change the radius of the circle that pops up?

Is there any way to do a ring of minimap buttons? I use tidyminimap to get them all lined up nicely but a ring would be far better. I tried looking at comments but you have a looot of comments. If anyone has attempted anything like it before, could you please just point me to a page or instructions and I can try to fiddle with it. Yes I've seen the broker option but I'm kind of trying to bypass broker addons.

OPie doesn't do that automatically, in any case. You could write an addon (much like the Broker plug-in) that would manage that behavior; but it's unlikely that I'll do that.

Is there any way to bind the ring to a button on the screen. It's awesome to have stuff keybound but there are certain things I wouldn't mind clicking on with ring appearing around it? Or anywhere?

The arrow buttons in the OPie Bindings panel can be used to get a macro that'd show a particular OPie ring. You could use that macro in combination with an action button to open a ring when you click the action button.

Finally, is there a way to change the radius of the circle that pops up?

1) Ring Bindings
right now, i have more than 15 custom rings; not all of them are key-bound, some are for nested rings. the problem i am facing is that i can not seem to scroll down past the 15th ring. the arrow buttons on either side of the 'Unbind Ring' are not lit, and do nothing when i click them. i am aware that i can set the binding under 'Custom Rings' but this does not give me a list of all key bindings to ensure none are on the same key. what happened to the scroll feature? (FYI, i turned off all add-ons except Opie, reset WoW, and problem persisted)

P.S. installed multiple releases of Opie; last one to scroll correctly was Echo 3 (1.41); since Foxtrot 1 (1.42), it seems the scroll feature has not worked.

2) Pet Spellbook
on my warlock, i am unable to drag any of my pet spells to a ring. is this intentional? would it be possible to implement pet action bars into Opie?

Ty for your replies
Much obliged.
One more quick question. I use opie to buff sometimes. Now, I use vuhdo as my raidframes so I have to select targets from there. If I then press a key to pop up a ring, since it's now hovering over the raidframe, it is unresponsive. Is there a way to have the rings set up to be on a higher level than my raidframes? So that opie would be higher strata if it's there and raidframes behind it in priority?
Not a big deal if not. I'm just curious if there is an option there and I'm missing it.

The error caused the ticket submission to fail, resulting in a loot ninja avoiding a temporary bann.

I cannot debug that based on the error message, unfortunately. If you can reproduce the error, do a /console taintlog 2, /reload, get the error to occur, then do /console taintlog 0, /reload, and upload the World of Warcraft/Logs/taint.log file somewhere; alternatively, describing some sure-fire way to get the error would also work.

What makes this doubly weird is that OPie doesn't really intersect with the help frame.

I've opened several gm tickets since I started using this addon and I've only had this error come up a couple times.
Next time it happens I'll definitely do what you said and get you those error logs.. Although I doubt I'll be able to reproduce it twice in a row..

Hey Foxlit, I was wondering if there was a way to stop RightClicking from closing the open rings? Also, making it so that LeftClick will only activate a slice and close the ring if the cursor is actually over the ability, not in its general direction.

I usually have a ring open but may not use it for a few seconds, so I would love to be able to target others and pan the camera with a ring open

the problem i am facing is that i can not seem to scroll down past the 15th ring.

Confirmed bug; I've fixed locally and it should be resolved in the next release.

on my warlock, i am unable to drag any of my pet spells to a ring.

I can reproduce that, but I'm not going to implement a direct fix for it -- Blizzard is purposefully messing with GetCursorInfo() returns in that case, and the "can't drag pet spells" behavior is consistent with the default action bars. You can probably work around this by using custom macro slices; I'm not sure how good the ability feedback would be in that case.

Originally Posted by zohar101

One more quick question. I use opie to buff sometimes. Now, I use vuhdo as my raidframes so I have to select targets from there. If I then press a key to pop up a ring, since it's now hovering over the raidframe, it is unresponsive. Is there a way to have the rings set up to be on a higher level than my raidframes? So that opie would be higher strata if it's there and raidframes behind it in priority?

There's a large number of confusingly similar issues that may be at fault there.

If the ring is not showing at all:
* If your ring binding involves a mouse button, you may not use it while hovering over any other button in the UI.
* If your ring binding is not a mouse button, some raid frames/binding addons may still hijack the binding temporarily when you mouse over their frames.

If the ring does appear, but left clicking does not work, you can probably check the "Make rings top-most" option in /opie configuration to change the way click events are captured for rings. If you're not using left-click activation, and the ring appears but is unresponsive, I'm not sure what's going on.

Originally Posted by softer

Hey Foxlit, I was wondering if there was a way to stop RightClicking from closing the open rings?

There is not; it's not a major pain to add, but I would probably prefer to avoid that for now.

Also, making it so that LeftClick will only activate a slice and close the ring if the cursor is actually over the ability, not in its general direction.

I've decided against implementing that. There are two main objections: a technical one, since those ability buttons do not exist as far as the addon is concerned at the moment, and a philosophical one: OPie is not LunarSphere -- which is an excellent alternative if you're looking for a more click-through-menus-like experience.

Originally Posted by flaicher

I'd love to see "Menu" in OPie. I mean the menu which is on right side of action bars (vanilla UI), Character Info, Spellbook, Talents etc.

That has appeared before; I tend to point out that you can already do that manually by creating a ring with macro slices to perform the relevant actions. [If you're brave, you can even backtrack through OPie's comment archives to find the macros people came up with.]

My right mouse button stops working for some time, I was looking into the problem and really didn't relate it to Opie,
then by accident I discovered that opening the rings and right clicking to close them fixes my right mouse button, so I guessed it has to do something with opie. Cause when I alt tab out of the game the mouse works fine, but in game it doesnt. I'm not an computer expert but can Opie be the reason for mouse bugging?