DialogKey is an AddOn designed to make handling dialogs and quest frames less of a hassle by allowing you to use the keyboard to control them. View the settings by typing /dialogkey, /dkey, or /dk
It has three primary functions:
1. Button Clicking
DialogKey lets you bind a key which can be used to "click" on certain buttons without the hassle of moving your mouse over to it. By default it's Spacebar, but you can change it or add a second key as well. Note that this isn't a traditional keybind: the button will still perform its normal function if none of the buttons are visible. For example, your Spacebar will still make you jump, but if one of the buttons is visible, it'll click it instead of jumping.
By default, the following buttons are clicked when you press the key:
- The first available option when talking to an NPC. This could be a conversation topic or a quest.
- Accept quest button
- Continue quest button (When you click on a quest at an NPC and are about to hand it in)
- Complete quest button
-
The OK/Accept button in popups - this includes:
- "Are you sure you wish to exchange <currency> for <item>?"
- "Looting <item> will bind it to you."
- "Do you wish to set your hearthstone to <location>?"
- <Player> has invited you to a group"
- And more!
You can also include other buttons for DialogKey to click. Just hover over the button and type /dialogkey add to start tracking it. Type /dialogkey remove to stop tracking the button under the cursor. You may also track/untrack by name, by typing, for example, /dialogkey add GameMenuButtonContinue. Capitalization matters!
2. NPC Option Selection
DialogKey allows you to press a number key to select a dialog option at an NPC. Pressing 1 will select the first conversation topic or quest, 2 will select the second one, etc. It also adds numbers at the beginning of each line. Pressing the bound key (e.g. Spacebar) will also select the first option.
3. Better Quest Frame Scrolling
DialogKey allows you to scroll quest detail frames with the scroll wheel, even if your cursor isn't over the frame. This is included because being able to accept quests with a keypress is nice, but not when you have to move your mouse to scroll down to see the rewards anyway. With this option enabled, you no longer need to move your mouse at all to pick up quests.
This option is disabled by default, but can be turned on by typing /dialogkey and enabling the option.
Options
Type /dialogkey to open the options panel. Here you will find four options:
Keybinds: Here, you can change which keys attempt to click the tracked buttons. Right-click a button to remove a keybind.
Don't try to click on greyed-out buttons: This controls how the bound key acts when it tries to click on an unclickable button (such as when you're trying to turn in a quest that you haven't completed yet) If enabled: the key will perform its normal action (e.g., you'll still jump if the bound key is Spacebar). If disabled: the key will do nothing.
Make buttons clicked by DialogKey glow: If enabled, every button clicked by DialogKey will glow for a second
1-9 keys select conversations/quests when talking to NPCs This enables or disables the feature described in #2 above.
1-6 keys select quest rewards Allows you to select quest rewards with the number keys. It even shows the item tooltip for true mouse-less interaction!
Mouse wheel always scrolls quest dialogs regardless of cursor position This enables or disables the feature described in #3 above.
Additional buttons to click: A case-sensitive list of additional buttons that DialogKey will track and click, one per line. Capitalization matters! The easiest way to modify this is with the /dialogkey add and /dialogkey remove commands, as explained above.
Confirmation dialog blacklist: A list of text strings (one per line); any dialog box that contains any of these lines will not be clicked at all. For example, enter invites you to a group on a line, and DialogKey will no longer make you join groups by hitting the bound key.
Remarks
You can use /dk, /dkey, or /dialogkey to open the options window.
It is not possible to bind mouse buttons.
Some buttons may not be clickable by DialogKey. Examples are quest item buttons in the quest tracker and Need/Greed buttons in loot popups. Technical talk: the reason for this is that buttons without a global name currently aren't able to be tracked with the /dialogkey add command.
In reply to nullKomplex:
1.7.2 fixes this!
So whats the reason that your addon also auto accept resurrections, when ever i do pvp in Nazjatal, and i get any where near my body i accept the resurection, this is really annoying i must say, since it dosent care if there are no Horde around of if its middle of 209208935709235790821375980237598327598237598327589 horde :D it just pops me :/Think its "accept spirit releases" ?
In reply to Forge_User_45859906:
It's the option "Accept revives". Disabling that means it won't recover your corpse when you hit the key.
Hey there. No matter how many times I use /dialogkey remove and blacklist Disable AddOns it never works. Spacebar will always click it. Is there anyway to make it so the addon will never click Disable AddOns ?
In reply to heathmcrigsby:
Try adding the question text to the blacklist rather than the button text. For example, try blacklisting "Your AddOns are experiencing" instead of "Disable AddOns". Does that work?
Thank you so much for this addon
nt
Thank you for updating. This really is the most essential addon in all of wow. It should just be rolled into the base UI.
Thank you so much for the update <3 absolutely delighted when i saw this today!
8.1.5 error:
In reply to tordenflesk:
Quick and dirty workaround that seemed to resolve the error for me: https://wow.curseforge.com/projects/dialogkey/issues/7
This obviously needs more testing to see if something else is broken or if there are other errors that I haven't encountered. Also, it's not a real fix but merely a hack, since I don't have time to look into it more right now. :(
!BugGrabber\BugGrabber.lua:519: in function <!BugGrabber\BugGrabber.lua:519>
[C]: in function `EnableMouseWheel'
DialogKey\core.lua:62: in function <DialogKey\core.lua:62>
[C]: in function `Hide'
FrameXML\QuestMapFrame.lua:327: in function `QuestMapFrame_CloseQuestDetails'
...rfaceBlizzard_WorldMap\Blizzard_WorldMap.lua:220: in function <...rfaceBlizzard_WorldMap\Blizzard_WorldMap.lua:217>
[C]: in function `OnMapChanged'
...aceBlizzard_MapCanvas\Blizzard_MapCanvas.lua:37: in function `SetMapID'
FrameXML\QuestMapFrame.lua:308: in function `QuestMapFrame_ShowQuestDetails'
FrameXML\QuestMapFrame.lua:1025: in function <FrameXML\QuestMapFrame.lua:1008>
Locals:
InCombatSkipped
is there any way to add for it to also click the sign up button for group finder and also the accept button for your role?
i tried adding
LFGListInviteDialog.AcceptButton,
LFGListApplicationDialog.SignUpButton,
LFGListFrame.SearchPanel.SignUpButton
to the local buttons in the lua and it will hit the first sign up but then returns the error"interface option failed because of an addon" when getting to the next sign up button.it also returns the same error when trying to accept purchasing an item on the auction house.
great addon! i cant picture playing without it now
1x [ADDON_ACTION_BLOCKED] AddOn 'DialogKey' tried to call the protected function 'UIParent:EnableMouseWheel()'.
!BugGrabber\BugGrabber.lua:519: in function <!BugGrabber\BugGrabber.lua:519>
[C]: in function `EnableMouseWheel'
DialogKey\core.lua:62: in function <DialogKey\core.lua:62>
[C]: in function `Hide'
FrameXML\UIParent.lua:2595: in function `SetUIPanel'
FrameXML\UIParent.lua:2675: in function `HideUIPanel'
FrameXML\UIParent.lua:2321: in function <FrameXML\UIParent.lua:2313>
[C]: in function `SetAttribute'
FrameXML\UIParent.lua:3154: in function `HideUIPanel'
FrameXML\QuestFrame.lua:25: in function <FrameXML\QuestFrame.lua:23>
[C]: in function `AcceptQuest'
FrameXML\QuestFrame.lua:508: in function <FrameXML\QuestFrame.lua:501>
[C]: in function `Click'
DialogKey\core.lua:794: in function `ClickButton'
DialogKey\core.lua:733: in function `ClickButtons'
DialogKey\core.lua:683: in function <DialogKey\core.lua:630>
Locals:
InCombatSkipped
Hey man, great addon. I added Disable AddOns (when there is an error overload) to the blacklist but Dialogkey still clicks it. Any idea about this?
Great addon!
Thanks for updating.
I got an error message "Interface Action failed because of an AddOn" when I tried to report someone in the chat, any fix?
7/17 19:28:19.142 An action was blocked because of taint from DialogKey - ReportPlayer()
7/17 19:28:19.142 Interface\FrameXML\StaticPopup.lua:993 OnAccept()
7/17 19:28:19.142 Interface\FrameXML\StaticPopup.lua:4640 StaticPopup_OnClick()
7/17 19:28:19.142 StaticPopup1Button1:OnClick()
7/17 19:28:19.142 StaticPopup1Button1:Click()
7/17 19:28:19.142 Interface\AddOns\DialogKey\core.lua:752 ClickButton()
7/17 19:28:19.142 Interface\AddOns\DialogKey\core.lua:691 ClickButtons()
7/17 19:28:19.142 Interface\AddOns\DialogKey\core.lua:682
In reply to 9361984:
In reply to Foxthorn:
Is there a way to turn off the spacebar accepting Delete confirmations? Like, lets say i accidentally dragged an item out of the bag, and deleted it because i was pressing space to fly up >.>