Download
(22 Kb)
Download
Updated: 08-30-12 05:13 PM
Pictures
File Info
Compatibility:
Mists of Pandaria (5.0.4)
Updated:08-30-12 05:13 PM
Created:07-22-11 11:47 PM
Downloads:4,226
Favorites:43
MD5:
QuestKing
Version: 0.94
by: Barjack [More]
ATTENTION

This addon contains no in-game configuration and is instead configured by editing values in the Lua files. If you are not comfortable doing this and require in-game configuration, this addon may not be for you. There are no current plans to add any in-game configuration.


Changes for 5.0/MoP

As of version 0.9, options are now moved into a separate file called options.lua. Also, you may specify overrides for the default options in options_override.lua if you wish. Doing so may make upgrading versions easier by electing to keep your override file between versions.

Description

QuestKing is a complete replacement for Blizzard's objective tracker frame. It is designed to be simple, compact and unobstrusive while supporting all the (in my opinion) important features of the Blizzard alternative, plus some of its own.

QuestKing is visually inspired heavily by QuestGuru_Tracker, and philosophically inspired by both QuestGuru_Tracker and its predecessors (such as bEQL). However, QuestKing is written from scratch, with no dependencies, and keeping in mind the requirements of a quest tracker in WoW 5.0. I've also attempted to keep CPU and memory usage relatively low.

The following features from the Blizzard frame ARE supported:
  • Quest tracking
  • Achievement tracking
  • New for 5.0! Scenario stage progress and criteria
  • New for 5.0! Challenge mode support, including medal timers and criteria
  • Notifications for automatically completable quests (New feature since WoW 4.0)
  • Notifications for automatically received quests (New feature since WoW 4.0)
  • Timers for timed quests
  • Timers for timed achievements
  • Quest item buttons
  • Automatic quest tracking (uses Blizzard setting)
The following features from the Blizzard frame ARE NOT supported:
  • Filtering the list based on your current zone
  • Manual or proximity-based sorting
  • Map POI buttons on the tracker itself (POIs still exist on world/mini map)
I may or may not support more of these in future (POIs would be nice but I find the icons rather obstrusive, and collapsable headers are a decent substitute for the first two).

Furthermore, QuestKing provides:
  • Collapsible tracker
  • Highly compact design
  • Notifications when looting items that begin a quest (based on itemID)
  • 3 different view modes (quests only, achievements only, and a combined mode)
  • Colour-coded quests and objectives according to level and completion state
  • Collapsible zone/category headers
  • Collapsible quest/achievement objectives
  • Custom positioning, including toggling between preset positions
  • Customisable size, positioning, font and colours
And with the optional but included QuestKingSounds standalone addon:
  • Quest progress sounds

Options

All 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. This should make upgrading to new versions easier in the future.

At the very least, you will almost certainly want to change the default position of the tracker by editing the "positionPresets" table. Each table there represents the arguments to the SetPoint that will determine the tracker's position.


Colours

Quests are coloured according to their difficulty, with some exceptions. Completed quests are coloured bright blue. Failed quests are coloured purple. 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.


QuestKingSounds

QuestKing comes with a bundled addon, QuestKingSounds, providing sound alerts for objective progress, completed objectives, and completed quests. This addon is entirely seperate from QuestKing and neither depends on the other. You may freely choose not to install QuestKingSounds. 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.


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 achievements are shown under their own header.

Collapse Button [+/- button]:
- [Left click] to toggle collapsing the tracker.
- [Right click] to cycle the tracker between alternative position presets.

Automatic Quest Popups:
- [Left click] to open.
- [Right click] to dismiss.

Headers:
- [Left click] to collapse.

Quests/Achievements:
- [Left click] to open.
- [Right click] to set active quest. (Quests only. Sets minimap arrow. Blizzard UI may override when opening the map.)
- [Shift] + [Left click] to link to chat. (Must have chat editbox open.)
- [Alt] + [Left-click] to collapse objectives. (Achievement objectives will temporarily uncollapse if a timer is detected on one.)
- [Alt] + [Right-click] to stop tracking this quest/achievement.

You may use the slash command /qkreset to reset the collapsed state of all quests, achievements and headers.


Bugs / Other

This is a relatively new addon, so please forgive any bugs (and please tell me about them should you find them). Also, the addon is not currently locale independent in a few of its functions (e.g. getQuestTaggedTitle). Any ideas/code for improvements in terms of efficiency are welcome. Feature requests are also welcome, but keep in mind I intend to keep this addon as slim as possible for my own purposes and am extremely unlikely to add in-game options, etc.
0.94
- TOC back to 50001 (the correct number).
- Made tooltip scale fix more robust.
- Added "tooltipScale" option. Set to nil to disable all scaling adjustments.
- Added "subzoneHeuristicHighlight" option for simple heuristic-based quest subzone highlighting.

0.93
- Will now attempt to restore the previous GameTooltip scale instead of setting it to 1 after the tooltip is hidden.

0.92
- Cleaned up options_override.lua.

0.91
- Added support for Legendary and Account quest tags.
- showCompletedObjectives can now be set to "always" to show objectives even
for complete quests.
- TOC version to 50004.

0.9
- Separated options out into options.lua and options_override.lua. Changing
your options in options_override.lua should allows for easier version
upgrades by keeping your options_override.lua between versions.
- Small code clean-up.
- Fix for new event SCENARIO_CRITERIA_UPDATE.

0.81
- Added separate font config option for challenge mode timer
- Added medal icons next to challenge mode timer
- Added platinum medal support (not currently used in game)
- Updated list of quest-starting items
- Changed challenge timers to more closely reflect the in-game medal colours
- Changed challenge timers to use an abbreviated time format (no hours unless
needed, no leading 0s)
- Changed the way completed scenarios are dislayed, allowing scenario quests
to continue to appear
- Adjusted challenge timer rounding to cause less resync jitter
- Scenario and challenge objectives now obey showCompletedObjectives
- Challenge timers now obey updateRate throttling for OnUpdate time/bar
updates
- Fixed bug causing achievement timers to ignore updateRate throttling after
first update
- (Internal) Cleaned up use of WatchButton:Get -> WatchButton:GetNext

0.8
- Added support for scenarios and scenario quests
- Added support for challenge modes, including medal timer
- Fixed 5.0 achievement bitmask bug
- Fixed 5.0 bug caused by present but nil objectives (e.g. 250 Mark of the
World Tree quests, Research Project: the Mogu Dynasties)

0.72

- Fixed delayed update not occurring when item buttons were hidden due to
layout check instead of button reset.

0.71

- Changed parent of item buttons to UIParent to prevent them being hidden
indirectly due to the parent button being hidden. Should hopefully also help
with taint problems.

0.7

- Fixed a bug that could cause Blizzard's tracker to reappear in some cases
(e.g. when visiting a barber)
- Fixed a possible taint issue that could happen when quest item buttons were
updated during combat. As a result, item buttons that would be created during
combat won't appear during combat, and item buttons that already exist may be
misaligned if quests are moved/hidden/completed during combat. The tracker
will wait until combat ends and force an update, adding or realign any buttons
that combat prevented.

0.66

- Removed a debug line.


0.65

- Re-added QuestKingSounds to archive (was mistakenly not packaged in 0.61).
- Fixed a bug that could cause the tracker to not update immediately or cause
an error occasionally when receiving an automatic quest.


0.61

- TOC updated to 4.3
- Added ability to disable quest item buttons
- Added a work-around for very rare, very obscure bug related to quest log
items being in an incorrect order (true cause remains unknown)


0.6

- Added quest-starting item popups (simple implementation based on predefined
itemID list and CHAT_MSG_LOOT)
- New colour for guild achievements
Optional Files (0)


Archived Files (11)
File Name
Version
Size
Author
Date
0.93
22kB
Barjack
08-30-12 02:25 AM
0.92
22kB
Barjack
08-29-12 10:49 PM
0.91
22kB
Barjack
08-29-12 10:31 PM
0.9
21kB
Barjack
08-29-12 10:14 PM
0.72
17kB
Barjack
02-17-12 06:18 AM
0.71
17kB
Barjack
02-17-12 06:05 AM
0.7
17kB
Barjack
02-17-12 05:44 AM
0.66
17kB
Barjack
12-10-11 06:08 PM
0.61
15kB
Barjack
12-03-11 01:11 PM
0.6
16kB
Barjack
08-28-11 03:21 PM
0.5
14kB
Barjack
07-22-11 11:47 PM


Post A Reply Comment Options
Unread 10-16-11, 04:38 PM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 80
File comments: 52
Uploads: 6
Awesome. Thanks for confirming that fix for me. I'll include it in the next release.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 10-16-11, 07:46 AM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 181
Uploads: 0
Apologies for the late reply.

I made the change in code that you specified. Upon reloading my UI, I was no longer given any errors. On character log-in, again, no errors. While I do have a heavily modified UI (custom, not pre-packaged), QuestKing was the only addon running to modify the quest tracker as I try to avoid stacking addons to avoid complications.

If any other issues pop up, I'll report on them, but all is well now. Thank you for the fix.
Sec is offline Report comment to moderator  
Reply With Quote
Unread 10-10-11, 02:18 PM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 80
File comments: 52
Uploads: 6
Originally posted by Sec
[b]Hi there, I get the following error on log-in, as well as when I obtain items (like buy something from an NPC). My quest tracker appears minimized and if I try to expand it, I also trigger the following error.
Hi. Thanks for the bug report. I had a look at that function and have a pretty good idea what is going wrong. Unfortunately I can't actually replicate your problem even though I can guess at what's causing it, so I can't tell on my PC if this fix actually works.

Are you comfortable editing your .lua file and testing to see if this fix works? The change is:

To go tracker.lua, line 1587 (where that error is happening). From 7 lines before that line, to 1 line after, there will be a section of code that looks like this:

Code:
		if (isHeader) and (not isCollapsed) then
			currentHeader = title
			tinsert(headerList, title)
			if not questSortTable[title] then
				questSortTable[title] = {}
			end
		elseif (not isHeader) and (IsQuestWatched(i)) then
			tinsert(questSortTable[currentHeader], i)
		end
replace this block of code with:

Code:
		if (isHeader) then
			currentHeader = title
			tinsert(headerList, title)
			if not questSortTable[title] then
				questSortTable[title] = {}
			end
		elseif (not isHeader) and (IsQuestWatched(i)) then
			if (not questSortTable[currentHeader]) then
				questSortTable[currentHeader] = {}
			end
			tinsert(questSortTable[currentHeader], i)
		end
If you could let me know if that works, that'd be great. I've already made the change myself but since I don't know if it actually works, I'd prefer to hold off on releasing a new version until the fix is confirmed to work.

Incidentally, are you running an addon that changes the appearance of the Quest Log in some way, or something similar? Some sort of unusual set-up in the log? Although I can guess at what's going wrong, as far as I know it should be impossible for this to happen in the default UI, so I'm curious as to what's going on here.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 10-10-11, 07:29 AM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 181
Uploads: 0
Hi there, I get the following error on log-in, as well as when I obtain items (like buy something from an NPC). My quest tracker appears minimized and if I try to expand it, I also trigger the following error.

Code:
Message: Interface\AddOns\QuestKing\tracker.lua:1587: bad argument #1 to 'tinsert' (table expected, got nil)
Time: 10/10/11 09:28:55
Count: 7
Stack: [C]: ?
[C]: in function `tinsert'
Interface\AddOns\QuestKing\tracker.lua:1587: in function <Interface\AddOns\QuestKing\tracker.lua:1564>
Interface\AddOns\QuestKing\tracker.lua:912: in function <Interface\AddOns\QuestKing\tracker.lua:901>
Interface\AddOns\QuestKing\tracker.lua:415: in function <Interface\AddOns\QuestKing\tracker.lua:399>

Locals:
Sec is offline Report comment to moderator  
Reply With Quote
Unread 09-22-11, 11:33 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 80
File comments: 52
Uploads: 6
Originally posted by Shabazza
Hello,

great lightwight questaddon. Is there a way to hide the questitems? I use Questbar an i dont need a button to klick on the tracker.

regards, Sha
Currently, there's no option to do that. I have added it to the next version, but it's probably not worth releasing an entire update for such a small change (only 1 line). In the next version, you can set itemAnchorSide to nil to hide item buttons.

For the current version, you can edit this manually since it's very simple. First set itemAnchorSide to nil instead of "left". Then change this line (approx line 1317):

Code:
if item and ((isComplete ~= 1) or (showItemWhenComplete)) then
to

Code:
if itemAnchorSide and item and ((isComplete ~= 1) or (showItemWhenComplete)) then
This change will make sure item buttons are never created if itemAnchorSide is nil.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 09-22-11, 11:02 AM  
Shabazza
A Kobold Labourer

Forum posts: 1
File comments: 52
Uploads: 0
Hello,

great lightwight questaddon. Is there a way to hide the questitems? I use Questbar an i dont need a button to klick on the tracker.

regards, Sha
Shabazza is offline Report comment to moderator  
Reply With Quote
Unread 09-01-11, 10:54 PM  
eqsanctum
The Great Equalizer
 
eqsanctum's Avatar
Premium Member

Forum posts: 134
File comments: 45
Uploads: 0
Originally posted by Barjack
[b]I've removed this comment since I'm a little insulted by your offensive labeling of this addon simply because it does not have a feature you would like.
Personally I would have left it out period. I saw the post. Thank you though for the explanation I was going to ask about the ordering myself was just thinking of a proper way of doing so without being offensive *cough*
__________________

Carbonite Supporter - ZAM Network Supporter - EQInterface OG
eqsanctum is offline Report comment to moderator  
Reply With Quote
Unread 08-29-11, 08:43 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 80
File comments: 52
Uploads: 6
Originally posted by ...
proximity-based sorting
I've removed this comment since I'm a little insulted by your offensive labeling of this addon simply because it does not have a feature you would like. Regardless, I will address the issue of why this feature is not present in case others are interested.

I've thought about implementing proximity-based sorting but there are the following problems:
  • It introduces OnUpdate checks that can potentially rebuild the tracker when no such things currently exist. I've managed to make the tracker entirely event-based (save for quest item buttons which use Blizzard code) and this represents a significant performance compromise.
  • SortQuestWatches() results in nonsensical sorting for quests outside of the current zone/area. The tracker currently uses log/level order. While switching to proximity seems logical for the current zone, it also means trusting the sort to sort remote zones which it essentially does not do. For me at least, this is worse than having no sort at all.
  • I think sorting makes less sense (though still some sense) in a categorised tracker, since the categories themselves represent at least a rough proximity-based sort in terms of zones.
There are potential workarounds that are possible but I'm not sure I like any of them. The second point can be worked around by simply ignoring this inconsistency, which is not ideal. Or maybe checking the current zone and ignoring all sort data for other zones, but that leaves open the possibility of the tracker behaving in an non-ideal fashion when questing between two adjacent zones, and doesn't work at all when quest headers don't match zones (e.g. "The Zandalari").

Since point 2 essentially means I myself won't use proximity-based sorting, I'm somewhat reluctant to implement it. I may still do so at some point, but personally the occasional opening of the map makes more sense than trying to work proximity-based sorting into the tracker.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 08-01-11, 05:57 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 80
File comments: 52
Uploads: 6
Re: Awesome

Originally posted by Taabissa
This looks exactly like what I am looking for, atleast I hope so. Trying to replace carbonite with lighter addons.

With my UI however, is there a way to anchor it to the bottom right and have it grow up? I won't have time to try it in game until later.
I use a top-anchor and grow-down but I believe it should also work when anchored to the bottom. To change the anchoring you'd edit the positionPresets table, e.g.

Code:
local positionPresets = {
	{ "TOPRIGHT", "UIParent", "TOPRIGHT", -2, -154 },
	{ "TOPRIGHT", "UIParent", "TOPRIGHT", -159, -16 },
}
Changing the first line to something like
Code:
{ "BOTTOMRIGHT", "UIParent", "BOTTOMRIGHT", -2, 150 },
Should result in the frame being anchored from the bottom right, 2 pixels left, and 150 pixels up in your UI, for example.

My testing with other anchor positions hasn't been extensive, though, so let me know if there are any problems.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 08-01-11, 03:07 AM  
Taabissa
A Deviate Faerie Dragon

Forum posts: 13
File comments: 3
Uploads: 0
Awesome

This looks exactly like what I am looking for, atleast I hope so. Trying to replace carbonite with lighter addons.

With my UI however, is there a way to anchor it to the bottom right and have it grow up? I won't have time to try it in game until later.
__________________
Taabissa is offline Report comment to moderator  
Reply With Quote
Unread 07-23-11, 05:04 AM  
Manaman
An Aku'mai Servant
AddOn Author - Click to view AddOns

Forum posts: 39
File comments: 161
Uploads: 1
Ah, misread the description, thanks for the clarification.
Manaman is offline Report comment to moderator  
Reply With Quote
Unread 07-23-11, 01:03 AM  
Barjack
A Black Drake
AddOn Author - Click to view AddOns

Forum posts: 80
File comments: 52
Uploads: 6
Originally posted by Manaman
Sounds like Monkeyquest resurrected from the out of date ashes, basically. I have gotten too used to quest blobs on the map to try this out, but nice that someone is bringing back the concept.
Yeah, I was really missing those kind of old-school trackers but fixing any of them up to work with 4.0 was too much for me, so I ended up starting from scratch.

Just to clarify though, the POI buttons are still on the map using this, they just aren't on the tracker itself (like that are on Blizzard's version). So with this you can open the map to see POIs, and you can also right-click a quest on the tracker to set its POI active (if possible). But there's no buttons on the tracker itself to show you if that quest actually "has" a POI.
Barjack is offline Report comment to moderator  
Reply With Quote
Unread 07-23-11, 12:51 AM  
Manaman
An Aku'mai Servant
AddOn Author - Click to view AddOns

Forum posts: 39
File comments: 161
Uploads: 1
Sounds like Monkeyquest resurrected from the out of date ashes, basically. I have gotten too used to quest blobs on the map to try this out, but nice that someone is bringing back the concept.
Manaman is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: