- Home
- Downloads
-
Addons & Mods
Featured
World of Warcraft
4,842 Addons
-
Popular Downloads
- Top World of Warcraft Addons
- Top Rift Addons
- Top Skyrim Mods
- Top Minecraft Server Mods
- Top Terraria Maps
- Top Starcraft II Maps
- Top Runes of Magic Addons
- Top Warhammer Online Addons
- Top Age of Conan Addons
-
- Curse Client
- Premium
- News
- Giveaways
- Forums
qUserKey - bind a key to any spell, item or macro
- 0 Likes
- World of Warcraft
- 26,776 Downloads
- Supports: 4.0.3a
- 9 Average Daily Downloads
- Comments
- Created 11/28/2006 4:07:50 PM
- Updated 1/22/2011 1:54:08 PM
- 147 Favorites
- Project Site
- License: All Rights Reserved
- Release Type: Release
- Newest File: qUserKey v40000h
About qUserKey - bind a key to any spell, item or macro
Abstract
Begining with The Burning Crusade, the user interface may bind keys directly to spells, abilities, macros and usable inventory items; however, the game does not provide a gui for making such key assignments. UserKey scans you spellbook, your macros, your inventory (including your bank) and provides a gui for assigning keys to those actions/items.
Also includes a mini-API to allow other Add-On authors to add entries to the UserKey table, allowing custom bindings to their own buttons built using the new secure templates.
Updated for WoW 3.0.2 patch; added options panel in Game Menu | Interface | AddOns.
MAJOR FEATURE ADDITION: In 3.0.2, all pets and mounts are converted to spells stored on the Companions interface and are no longer inventory items. Unfortunately, the companions don't honor the normal function for binding keys. As a (hopefully temporary) workaround, qUserKey has the ability to scan your mounts/pets, create macros to call each of them, and let you bind keys to those macros. On the upside, this is nice and simple. On the downside, it can potentially consume a ton of macro slots. This macro generation is disabled by default. You may enable it via the aforementioned options panel.
Usage
UserKey adds a new entry to the main game menu called "User Key Bindings" directly below the original "Key Bindings" button. Click the button and scroll through the available items. Items from the spellbook are displayed first (with tabs/schools indicated), then macros, then usable items. Then click the item you want to bind, press the key you want (including CTRL, ALT, and/or SHFT) just like the official Key Binding interface.
AddOn Authors:
To add your own buttons to the UserKey table, simply call:
UserKey_AddButton(addon, section_name, button_table);
where:
addon = "your addon name";
section_name = "My Clever Title for My buttons";
button_table = { { " name button1", "mybutton1" }, {"name button2","mybutton2"} };
This will add entries to a section titled "My Clever Title for My buttons". When you bind a eky to "name button1," UserKey will perform a SetBindingClick(key,"mybutton1"). Subsequently pressing the key will "click" your button.
If your addon fails to load, the binding will no longer be displayed.
To remove a binding button from the list dynamically, call UserKey_RemoveButton(addon, section_name, button_table). Notes Regarding Inventory Changes The inventory scan checks your bags anytime your inventory is updated. It also checks your bank whenever you open the bank interface. It then labels which bag/bank slot contains the item to make it a little easier to find in your bags. If you consume an item, sell an item or destroy an item, UserKey can't readily tell why the item left your inventory. So, it assumes that any
items that suddenly go "missing" must have been stored in your bank slot. They will be displayed with the tag (bank?) indicating the UserKey isn't really sure where the item is. The next time you open your bank, UserKey will have access to your full inventory. Any (bank?) items that aren't truly in your bank will be removed.
Technically, UserKey could assume that any item that goes "missing" must have been sold/destroyed/lost if you don't have your bank frame open. it's a little safer, though, for UserKey to assume it missed some event firing and therefore assume your item is in the bank. As soon as you open your bank again, UserKey will be able to resynch.
The "reset data" button ONLY clears the text displayed by UserKey. It does NOT undo all of your keybinds. This is primarily a debugging tool that I've left in the mod to facilitate future additions.
The "scan" button rescans your spellbook, macros and inventory. UserKey triggers off many events and should automatically detect any changes to bindable actions. If, however, you find an item doesn't automatically appear in your list, try clicking the Scan button. You can reclick scan as often as you want, it will not create duplicate entries in the display.
re-enabled binding to mousewheel.
Added warnings for an error condition when a user names a macro the same as an existing spell.
| File Name | Release Type | Game Version | Downloads | Date |
|---|---|---|---|---|
| qUserKey v40000h | Release | 4.0.3a | 6,301 | 1/22/2011 1:54:08 PM |
| qUserKey v40000f | Release | 4.0.3a | 2,289 | 11/27/2010 2:41:21 PM |
| qUserKey v40000e | Release | 4.0.1 | 1,271 | 11/9/2010 12:47:19 AM |
| qUserKey v40000d | Release | 4.0.1 | 1,338 | 10/22/2010 9:31:48 PM |
| qUserKey v40000b | Release | 4.0.1 | 1,128 | 10/16/2010 4:40:20 PM |
| qUserKey v30300 | Release | 3.3.0 | 119 | 2/25/2010 2:31:30 AM |
| qUserkey 30200g | Release | 3.2.0 | - | 11/29/2009 3:10:44 AM |
| qUserKey 30200f | Release | 3.2.0 | 1 | 8/22/2009 3:00:16 PM |
| qUserKey v30000c | Release | 3.0.9 | 1 | 2/15/2009 8:39:52 AM |
| qUserKey v30000b | Release | 3.0.2 | 2 | 10/18/2008 10:46:50 PM |
| qUserKey v30000 | Release | 3.0.2 | 4 | 10/18/2008 9:07:29 PM |
| v1.6-20200 | Release | 2.0.0 | 6 | 10/28/2007 1:07:47 PM |
| 1.5-20000 | Release | 2.0.0 | 12 | 12/23/2006 8:47:07 AM |
| 1.4-20000 | Release | 1.12.0 | 4 | 12/22/2006 10:14:09 PM |
| 1.3b-20000 | Release | 2.0.0 | 1 | 12/8/2006 3:07:06 PM |
| 1.1 | Beta | 1.12.0 | 4 | 11/29/2006 5:17:19 PM |
| 1.0-20000b | Beta | 1.12.0 | 2 | 11/28/2006 4:27:33 PM |

Comments
So basically, out of 30 mapped hotkeys, 26 work. Not too bad, I wish it wasn't my oh crap buttons that weren't working, but oh well.
I can't bind any item. When I do "Scan", no item of my bags appears.
What can I do?
Thanks
40000e fixes the modifier keys.
Interface\\AddOns\\qUserKey\\qUserKey.lua:457: attempt to concatenate local 'button' (a nil value)
["stack"] = "[C]: Interface\\AddOns\\qUserKey\\qUserKey.lua:457: in function `UserKey_OnKeyDown'
"
Interface\\AddOns\\qUserKey\\qUserKey.lua:538: attempt to concatenate local 'keypressed' (a nil value)
"
Message: ..\AddOns\qUserKey\qUserKey.lua line 457:
attempt to concatenate local 'button' (a nil value)
Debug:
[C]: ?
qUserKey\qUserKey.lua:457: UserKey_OnKeyDown()
[string "*:OnMouseDown"]:2:
[string "*:OnMouseDown"]:1
Message: [string "UserKeyScrollFrame:OnMouseWheel"] line 3:
attempt to compare number with nil
Debug:
[C]: ?
[string "*:OnMouseWheel"]:3:
[string "*:OnMouseWheel"]:1
If this could be fixed, it would be exceptionally useful.
Open qUserKey, scroll to the action you want to bind, then first press and hold(!) your modifier key(s) (e.g. Shift or Ctrl+Shift), click the button to bind a key and finally hit the last one (E or whatever).
This way the whole key combination gets recognized as one virtual key as it should.
Anyone having the same problem?
https://forums.worldofwarcraft.com/thread.html?topicId=25626580975&sid=1
I have updated v30300 for my personal use with the necessary changes and it works.
Global variables this, event, arg1, ..., are no longer available therefore I used the standard variables for the widget handlers (.xml)
OnClick (self,button,down)
OnMouseDown (self,button)
OnMouseUp (self,button)
OnMouseWheel (self,delta)
OnKeyDown (self,key)
OnEvent (self,event,...)
In the .lua I changed every setglobal/getglobal into _G and:
- adapted the widget handler functions
- changed API function GetSpellInfo() to GetSpellBookItemName()
- inserted code to filter out unavailable Spells
skillType, spellId = GetSpellBookItemInfo(spellName)
(skillType must be "SPELL")
Note that your keybinds are stored on the server, not by this mod. So any binds you made prior to the patch should work fine (mine did), but it's exceedingly difficult to change them until I release the fixed UI.
Also, binds are stored on the server but any bind that involved a spell that got changed either via talents or the simple fact that they removed spell ranks from the game seem to have broken my binds with those...
Anyways, I'm stoked to be getting this back! I've considered looking for another keybind addon, but if you'll have this up soon I'll just sit tight.
I WILL LOVE THE NEXT PERSON THAT BRINGS THIS ADDON BACK TO LIFE IN 4.0+.
THANKS!