QuestKing 2

This addon does have some in-game configuration via slash-commands (for example, for dragging and locking the tracker). However, more detailed customization (if required) must be done by editing values in Lua files. See options.lua for more information. There are no plans to add detailed in-game configuration menus.

Description

QuestKing is a complete replacement for Blizzard's default objective tracker/quest tracker. It is designed to be simple, compact and unobstrusive while supporting all the features of the default tracker, plus some of its own.

QuestKing is inspired by old-school quest trackers like GuestGuru, bEQL and MonkeyQuest. However, QuestKing is written from scratch to be a modern objective tracker that supports not only quests, but all the new types of objectives that Blizzard has gradually added to WoW. This includes achievements, scenarios, dungeon objectives, bonus quests, timed objectives, challenge modes, proving grounds, automatic quests, and so on. I have tried to keep the tracker as efficient as possible, and it should hopefully be kind to both your CPU and memory.

Sadly, there are a couple of things QuestKing does not and probably will not support. Because QuestKing is a categorized tracker, it does not suport changing the sort order dynamically based on zone/distance. It will always show your tracked quests in the same order and category as the quest log itself. It also takes a more conservative approach to supertracking (see the section on supertracking below).

Options

QuestKing comes with a number of slash commands for basic customization. They are as follows.

/qk lock - Locks and unlocks the tracker, making it draggable./qk scale - Sets the tracker's scale. Default is 1. Set to 1.2 for 20% larger, etc./qk alpha - Sets the tracker's transparency. Default is 0.9, and valid values are 0 to 1./qk origin - Sets the point from which the tracker "grows". Default is TOPRIGHT. Other valid values are TOPLEFT, BOTTOMLEFT, BOTTOMRIGHT./qk reset - Resets all collapsed objectives and headers./qk resetall - Resets all QuestKing settings (global and for the current character).

Many other options are configured by editing values in Lua files. A list of all default options is shown in options.lua, with comments provided next to many variables in case their name is not sufficiently descriptive. You may edit options directly in options.lua if you wish, but you should also consider using options_override.lua to override just the defaults that you want to change. See the comments at the top of options_override.lua for more information.

QuestKingSounds

QuestKing comes with a bundled addon, QuestKingSounds, providing sound alerts for objective progress, completed objectives, and completed quests. This addon is entirely separate from QuestKing and neither depends on the other. You can install QuestKing without QuestKingSounds, or even install QuestKingSounds by itself without using QuestKing. If you do want to use it, you may configure it in the same way QuestKing is configured by looking at options.lua and options_override.lua.

Colours

Quests are coloured according to their difficulty, with some exceptions. Completed quests are coloured bright blue. Completed quests that can be turned in from anywhere are dark blue. Quests with no valid objectives are coloured pale green, indicating a probable "connector" quest (a quest that doesn't need to be "completed" but rather simply requires you to visit some other questgiver, often in another zone or area). Objectives are coloured fading from red to green as they are completed, then finally pale purple at completion (to make it easy to distinguish between a 100/100 objective and a 99/100 objective). Many of these colours are configurable in Lua should you wish to do so.

In-Game Tracker Usage

Mode Button [Q/A/C button]:
- [Left click] to cycle between quest (Q) and achievement (A) view mode.
- [Right click] to cycle into combined (C) mode, where both are shown together (achievements are shown under their own header).

Collapse Button [+/-/x button]:
- [Left click] to toggle collapsing the tracker (+/- modes). A collapsed tracker won't show tracked quests or achievements, but it will still show important and contextual information, like dungeon objectives, quest notifications, and bonus objectives.
- [Right click] to collapse the tracker completely (x mode). A tracker in this mode will never show any information at all.
- [Shift] + [Left click] to cycle the tracker between alternative position presets (if in preset mode).
- [Mouse wheel] to fade in a tracker backdrop (helps to increase visibility).

Supertracking is the term for the "actively tracked" quest whose objective is highlighted more strongly on your map and minimap, and for which a minimap arrow appears. On the default objective tracker and the default map, you do this by clicking the big circled numbers. In QuestKing, you can still use the map as usual, or you can do it by right-clicking the title of a quest (a small yellow dot will appear after the name of the actively supertracked quest). You can right click the same quest again to remove the dot and disable supertracking. Unlike the Blizzard system, you can even use this to supertrack bonus objectives or quests in other zones.

Note however that QuestKing takes a more careful approach to automatic supertracking compared to the default objective tracker. First, QuestKing strongly supports the concept of supertracking no quest at all, and will never automatically set a supertrack target if supertracking is not currently active. This means you won't get minimap arrows constantly appearing and changing around when you're not doing any questing at all. QuestKing will automatically change the supertracked quest only if you are actively questing. This is determined to be the case in three situations:

1) You complete all the objectives of a quest. In this case the closest available quest will be supertracked (which might be the turn-in of the same quest).
2) You accept a new quest. In this case also, the closest available quest will be supertracked.
3) A quest you were tracking is removed from your quest tracker. Again, the closest available quest will be supertracked.

Note that even without any quest supertracked, quest objective areas will always be available and highlighted on the map and minimap. Supertracking only sets the minimap arrow and makes the objective area stand out more.

Notes

Looking for an old-school style quest log to go with your old-school style tracker? I recommend Classic Quest Log by Gello. It's a great addon that works perfectly alongside QuestKing, without any overlapping functionality.

I would like to thank the creators and maintainers of the quest trackers who came before me. Bayi, mrobrian, Gregity, Lazare, Jim-Bim, and many others. QuestKing was heavily inspired by the appearance and functionality of these great addons. And of course, thank you to the authors of Blizzard's own objective tracker (which I referred to constantly while writing this), and to all those who helped document WoW's UI on sites like WoWProgramming and WoWpedia.

Comments, constructive feedback, and bug reports are welcome. I hope you enjoy this addon.

2.2.4
- Fixed a bug with PetTracker integration where the pet zone tracker would frequently reappear even when disabled.
- Added an option to hide the border of the mode toggle buttons (opt.hideToggleButtonBorder, false by default).

2.2.1
- Attempted to fix a bug which happened sometimes when multiple bonus objectives were displayed at the same time.

2.2.0
- Improved how superceding objectives are displayed (e.g. Garrison invasion point objectives). If you want the old behaviour (all objectives always visible), then set opt.hideSupersedingObjectives to false.
- Slightly increased the time bonus rewards are displayed from 7 to 10 seconds.
- Fixed how "reptutation"-style objectives are displayed to avoid truncation.
- Fixed some issues in locales that show objective description/count in reverse order (e.g. ruRU).

2.1.1
- Fixed an error that happened when the tracker queued an update for after combat.
- Changed supertracking to always check for the closest POI when accepting a quest.

Thank you that background really helps. This is more and more looking like something I want to use full time. Is it possible in the settings to set a max height and then scroll up and down inside that frame? Or am I thinking way too big on that?

Can we possibly please get the ability to have a background frame and maybe even a border frame. This would be gorgeous and pretty unbeatable if it had that with like a 1 pixel colored border.

It might not be exactly what you're after, but there is background support (but only in Lua). You can enable the default background by adding "opt.advancedBackgroundTable._alpha = 1" to your options_override.lua file.

Of course you can set any value other than 1 too, for example 0.5 will make a background at 50% transparency. You can also scroll the mouse wheel on the minimize button to enable/disable the background temporarily at any time, even without changing and Lua files.

As for "one pixel" borders that's probably more difficult. If you look in options.lua you can see the default background settings in the "opt.advancedBackgroundTable" table. If you want you can override that entire table in options_override.lua. But turning that into something with a 1-pixel border might be difficult.

Sorry for the delays. I was hoping to post the new version before I posted here again, but things took a little longer than I anticipated. The changes and new systems in MoP/WoD were far more than I thought, and many features that I wanted to implement (e.g. animations) required a substantial change to how frames are used and recycled. QuestKingSounds also needed to be rewritten and I made a lot of other improvements too.

The good news is that the new update is 98% done. All WoD features are finished with a couple of exceptions. First, challenge modes are done code-wise but I can't test the new code until I hit level 100. Secondly progress bars for certain bonus objectives aren't in yet, but that's also apparently something I can't do until I hit 100 (I don't know of any low level objectives that use a progress bar).

I don't want to release an incomplete addon so I'll be trying to level up and finish these things. Of course I'll be trying to test the addon as well along the way. Things might be slow going though as I'm very busy with work and can't play for long most days. But I'm very, very happy with the changes made and I want to release this as soon as I can.

Thanks for your patience!

P.S. There is also a small issue of dungeons/scenarios with multiple bonus objectives that "supercede" others. Code to support this exists in the default Blizzard tracker but I can't find any dungeon/scenario that actually uses this feature. It might be something that was scrapped in beta and never used. But if anyone does know a dungeon/scenario with multiple bonuses that show in sequence instead of all at once, please tell me!

I'm currently working on getting this updated for 6.0. I've fixed all regular quests and fixed quest items too, as well as the sounds from QuestKingSounds. I still have to work on challenge mode timers and scenarios and proving grounds before it's ready for release. Sadly I need to be level 100 to test the new challenge modes, so that's a bit of a pain. If that takes too long I might make an interim release with everything but the challenge timers.

Regardless, work is coming along well. I hope to have a WoD-compatible release in the near future.

I'm currently working on getting this updated for 6.0. I've fixed all regular quests and fixed quest items too, as well as the sounds from QuestKingSounds. I still have to work on challenge mode timers and scenarios and proving grounds before it's ready for release. Sadly I need to be level 100 to test the new challenge modes, so that's a bit of a pain. If that takes too long I might make an interim release with everything but the challenge timers.

Regardless, work is coming along well. I hope to have a WoD-compatible release in the near future.

Love this addon, was my favorite quest objective frame replacement. I know there are a ton of changes to the LUI commands for WoD, I tried to fix a few of them but didn't get far.

Any status on an overhaul for 6.0.x?

Hello! I'm glad you like my addon. I'd really like to update this for 6.0 at some point. Sadly I'm super busy with work/life right now and I haven't played WoW recently so I'm behind on the UI changes. I've been thinking about resubbing and getting QuestKing working again, but I can't make promises right now.

If anyone manages to find fixes for the problems in 6.0, I'd be glad for you to put them here, or post your own version. But being realistic, this isn't the most popular addon in the world, so I don't know if that's likely to happen. Sorry for the ambiguous news--all hope is not lost, but it depends on whether I can find the time. You might be stuck with the default tracker for the time being.

Hey. Glad to see you got it (mostly) working. Hopefully it's useful to someone else. When I get the chance to get back into WoW and test things I'll have a closer look at it myself.

The timer sync issue is difficult. Originally I just trusted what the server told me with regard to timer lengths, but I noticed that the server would typically run slightly slower than the client. So with long timers you'd eventually lose a lot of time, hitting 0 seconds even though the "real" (server) timer has 20+ left. So there's some kinda ugly stuff in there that's supposed to resync the timers and also make timer resyncing less ugly (avoiding numbers consistently jumping back up). Of course I barely even know what proving grounds are so it's hard for me to speculate on causes, haha. Anyway, really happy to see a more functional version here. Thanks for working on it!

Proving grounds is more or less just a regular scenario with timed "waves".

Hey. Glad to see you got it (mostly) working. Hopefully it's useful to someone else. When I get the chance to get back into WoW and test things I'll have a closer look at it myself.

The timer sync issue is difficult. Originally I just trusted what the server told me with regard to timer lengths, but I noticed that the server would typically run slightly slower than the client. So with long timers you'd eventually lose a lot of time, hitting 0 seconds even though the "real" (server) timer has 20+ left. So there's some kinda ugly stuff in there that's supposed to resync the timers and also make timer resyncing less ugly (avoiding numbers consistently jumping back up). Of course I barely even know what proving grounds are so it's hard for me to speculate on causes, haha. Anyway, really happy to see a more functional version here. Thanks for working on it!