• World of Warcraft Addons
Advertisement
  • World of Warcraft
  • Average Rating:

  • Your Rating

  • Share

QuestHelper

  Download the Curse Client

Last Update:
Category: Map & Minimap, and Quests & Leveling
Tags:
Project Manager: smariot
Current Version: 0.59
Downloads Today: 46,622
Downloads Total: 4,409,354
Favorites: 9,686
Comments: 4,403
  • About QuestHelper
  •  

What It Does

Compiles a list of waypoints for the quests in your quest log, and sorts them so as to minimize the distance between them, and so that they happen in the correct order.

Which is to say, it tells you how to complete all your quests while walking as little as possible.

Project Status

0.59 released. Again, no interesting new features, this continues to be Bugfix Central.

This version will work with both Wrath and Burning Crusade, it's the same package, just download it and it will work. Note that not all Burning Crusade quests may be in the database - this stuff is collected by you guys, and I rely on you submitting your collected data. ("/qh submit" for submission instructions, and thanks!)

FAQ

It doesn't work. What can I do?

Three things. First, if there's a major issue with QuestHelper, you can type "/qh error" and it will show you the first error it ran into. If you post that in the comments here, or open a ticket, I may be able to help you.

If it just doesn't work, "/qh hardreset" will reset all your accumulated data and preferences, hopefully getting rid of weird problems. If you still can't see the quest tracker, "/qh treset" will try to force it into a visible position on your screen. The combination of these two fixes most problems.

If neither of those help, disable your other plugins as a test - there are known incompatibilities with some plugins (Cartographer 3 is the one I know of the best, though if you narrow it does to any others, please let me know.)

What can I do about my framerate?

If you have any addons that enabled CPU profiling, turn it off, it greatly increases the amount of work WoW has to do. The command to do that is:

/console set scriptProfile 0
/console reloadui

If that doesn't make a difference for you, there's a slash command, /qh perf, that can scale the amount of work QuestHelper does per frame. Example:

/qh perf 50%

What can I do about my memory?

QuestHelper instrinsically uses a chunk of RAM. You can expect 25m-30m of usage. I'll reduce this when I can, but then I'll also probably increase it again as I add more data. There's really not a lot you can do about this.

Why aren't my quests showing up?

/qh hidden will list everything that isn't being shown, along with the reason for it being hidden.

If I send you my data, should I delete my copy?

It would be appreciated, since that way my gmail account doesn't fill up as quickly. It's not mandatory.

The file contains a random string created the first time you use QuestHelper so that I can easily find different versions of the same file and ignore all but the most recent.

How can I get rid of that arrow over my character's head?

/qh cartwp will hide the arrow. If you'd rather move it instead, you can drag it around by left clicking. . . unless it's been locked, in which case right click on it and unlock it first.

How do get that 3D arrow pointing where to go?

That arrow is part of Cartographer Waypoints. It should appear automatically as long as Cartographer is installed and running, and you haven't turned off that feature.

If you have TomTom installed, you can have TomTom display your waypoint arrow instead. Again, it should just work, unless you've disabled it.

The Icons on my map are huge! How can anyone see anything?

If you find the icons are too big for you, you may enter /qh scale X%, replacing X with some reasonable scale. I'd start with 80%, depending on how that looks you can try bigger or smaller numbers.

Future Releases

Everything in here is planned and not guaranteed. Do not yell at me if things get delayed or shuffled. Pushing versions back happens extremely frequently if unexpected new bugs crop up. You may also notice there are no dates listed - that's intentional, if I knew how long it would be I'd have fixed it by now. This is just to give you an idea of what my next major plans are.

I'm currently planning on a feature freeze and bug fix. Too many bugs, too many annoying exceptions being thrown. We'll get back to new features once I'm not being bombarded with "I did something reasonable and QuestHelper melted" comments.

0.59+: Bug cleaning time!

0.thefuture: Improved data gathering code

0.eventually: Route system rewrite

0.whoknows: Flying mount support (this will take longer than you expect)

Author(s)

ZorbaTHut is the new maintainer of this project, and hopes that he will bludgeon it into shape and continue maintenance well through Wrath. In other words, any bugs after 0.49 are his fault.

Smariot is the original developer of the package.

Nesher has been mucking around with the code and so probably deserves to be mentioned.

Vipersniper has fiddled a little and probably does not ;-).

How to avoid getting your account stolen.

  • AddOns don't require you to install or run anything, aside from whatever program you use to extract their files. Don't ever run anything you find inside an archive.
  • Make sure your web browser is up to date. Bugs can be exploited to install things on your computer without any confirmation or acknowledgment.
  • If a web page asks you to install anything, don't. The only two extra things a web page might legitimately need are JavaScript and Flash, which you more than likely already have.
  • Make sure the virus definitions for your virus scanner are up to date, and scan the files you download with a virus scanner.
  • If you're connected directly to the internet, make sure you have a firewall of some kind. If you have a router or other device that does network address translation, these often work well in place of a firewall, since people on the internet trying to connect to your computer will end up connecting to the router instead, unless you set up DMZ or port forwarding.
  • These files are often found inside AddOns, and should be completely safe:
    • toc, xml, lua: These files contain text which you can view in a text editor, and are instructions for your WoW Client to interpret. They are executed by Warcraft in a sandbox environment, and so shouldn't be able to do anything dangerous.
    • tga, blp: These are 2D images.
    • m2: These are 3D models, although they're sometimes used for 2D things like arrows because it makes rotation easier.
    • wav, mp3: These are sound files.
    • avi: Video. Believe it or not, AddOns can play video, although it's extremely rare.
    • txt: This is text intended to be read by humans. Likely you or other AddOn developers.
  • If you find any other types of files, then you should be suspicious. The following files in particular have the potential to damage your computer, steal your account information, or get you banned for making modifications to the game client outside of the interface provided by Blizzard:
    • exe, com, bat, ocx, sys, src, msi, lnk, pif, sh, reg, shs, vb, vbs, and many others.
    • Depending on how Explorer is set up, file extensions might be hidden from you.
    • Be careful of filenames that contain lots of spaces. People sometimes name files such as 'file.txt        .exe' in order to trick people into thinking the file is safe. If you see '...' in a filename, then you should avoid trying to open it, it might have been intentionally made longer than could be displayed in order to hide its extension.
    • Don't trust file icons. Executables and shortcuts can have arbitrary icons, and use those icons to make a file look like something safe when it isn't.
    • pif and lnk files are shortcuts and their extensions are generally always hidden by Explorer. You might see the extensions inside an archiving utility or in the name of an email attachment, but have them magically disappear once saved on your computer. As they can have arbitrary icons and be named pretty much anything, all hope of correctly guessing what the file is or does by looking at it goes out the window.
  • Don't follow links you receive in email, as the text displayed in the message doesn't have to match what its actually linking to. Type the address yourself or search for the site using Google.
  • If you're not using your own computer, don't use it for anything that requires a login. Simply browsing the web is fine. Don't check your email from it, as you can't be sure it doesn't have a key logger, and it would be quite bad if somebody got a hold of your email account, as the passwords of most services are reset using email verification.
  • Even if you are using your own computer, don't trust publicly available internet access points in places like hotels, airports, internet cafes, and libraries. With things like ARP spoofing, custom DNS servers, and transparent HTTP proxies, there really is no guarantee that you're viewing the pages you think you are. Even if it hasn't been altered, packets on a LAN can generally be seen by every computer on it, and HTTP doesn't use any encryption at all, so anyone can see the passwords you use.
  • Don't use the same password for playing Warcraft as you do on internet websites. Especially websites related to Warcraft. If the people running the site aren't trust worthy, or their user database gets stolen, or somebody is watching your network traffic, it's likely to be used trying to login into your account.
  • Secure websites, which have URLs beginning with 'https://', such as the login page for the official World of Warcraft site, are only secure if you verify the site's certificate, otherwise someone can make their own and pretend to the that site. Your browser should warn you if the certificate of a site you've visited in the past has changed. Don't ignore this warning! If someone pretends to be the website you're connecting to, you'll get their certificate instead (hence it appearing to change) and they'll be able to see anything you send or receive.
  • Secure websites are only as secure as whoever or whatever is on the other end. You can use a secure connection to tell a serial killer where you live and feel confident that nobody else saw it (unless someone was looking over yours or his shoulder, or he tells his buddies), but it shouldn't make you any more confident that you'll still be alive in the morning.
  • Use the 'Remember Account Name' option of Warcraft. If you don't type your account name, it can't be recorded by a keylogger.
  • If your password can be found in a dictionary, then change it. Using 'password' as your password isn't clever, it's stupid.

So, some people claim that their accounts got hacked while using QuestHelper. In the interest of security, assuming I can be trusted, QuestHelper 0.45 includes a detached PGP/GPG signature, so you can make sure the file you downloaded is actually the file I uploaded, and hasn't been screwed with along the way. Hooray!

  • The signature is detached and is in a separate file. This way people that can't be bothered to verify the file can still use it as normal without needing any extra software.


  • The key I (smariot) signed it with is here, its ID is D95A5472. I can't actually prove that I am who I claim I am, so you'll just have to take it on faith.
  • This is only a guarantee against intentional malice. Accidents still happen.
  • To verify a file using gpg on the command line:
    • To verify the file with gpg, get my key by downloading it from a keyserver: gpg --recv-keys D95A5472
    • Then verify the file with the command: gpg --verify <filename>.sig
    • gpg should say something along the lines of 'Good signature from "Tyson Brown <smariot@gmail.com>"', along with a warning saying that the signature isn't certified, since nobody you trust has signed my key.

Important

The support for non-English locales is pretty new, so YMMV. There is a graph in the screenshots section comparing the various locales, if you're interested. You can improve your locale by completing missing quests while using QuestHelper, and submitting your saved data.

This program still has a few bugs, especially in Outland, where I haven't tested it at all, and where apparently routing code has a habit of spontaneously exploding, and QuestHelper knows nothing about flying mounts and the like. There are also some quests that QuestHelper will never be able to complete properly without a bunch of human intervention, which I'm unlikely to give it, mostly those where the NPCs can be in multiple locations depending on where in the Quest you are, and quests that have objectives that aren't explicitly written as objectives in the quest log.

Usage

For the most part, you just install it and leave it alone. It should hopefully be smart enough to do The Right Thing™, and not require you to meddle with it.

<video width=480 height=360>1308</video>

Minimap

The task QuestHelper thinks you should do first is displayed on your minimap, which you can mouse over for a description. If the task isn't in your current zone, then it will point towards where QuestHelper thinks you should go to get there, such as a flight master or the zone border.

World Map

All the tasks QuestHelper wants you to do are displayed on the World Map. There are 'marching ants' connecting the objectives, showing you the order QuestHelper thinks you should complete them in.

You can right click on an objective to get a list of options for it.

There is also a QuestHelper button in the upper right corner of the World Map. You can click it to hide QuestHelper temporarily, or right-click it for a menu of general options.

Menus

Using the menus should, hopefully, be obvious. The only catch might be that they don't automatically disappear if you click on something else.

You can right click anywhere on a menu to hide it, or select the Close Menu command from the end of the menu.

Priorities

There are 5 different priority levels an objective can have: Highest, High, Normal, Low, and Lowest.

Most objectives default to Normal. Objectives for timed quests default to High. User created objectives default to Highest.

QuestHelper will try to arrange the objectives so that higher priority objectives get done first. The only time this won't happen is when an objective with a higher priority depends on an objective with a lower priority, in which case QuestHelper will pretend it had the higher priority. You will notice a green arrow in the priority menu when QuestHelper isn't using the priority you assigned.

You can use priorities as hints to get the objectives in an order you'd prefer, without the need to micro-manage the route list.

Filters

There are 4 filters you can use to automatically ignore quest objectives, which you can turn on and off using the slash command /qh filter.

The first filter is level, which by default is on. It will cause QuestHelper to ignore any objectives that your current party probably isn't high enough to complete. You can adjust the level offset used by this filter with the command /qh level offset.

The next filter is zone, which by default is off. It will cause QuestHelper to ignore any objectives that aren't in your current zone. Note that this filter might not do The Right Thing™ for objectives that can be completed in multiple zones.

The third filter is done, which by default is off. It will hide objectives for any quests that aren't complete. You can use this if you don't want to quest and just want to turn the quests you do have in.

The fourth filter is blocked, which hides blocked objectives, i.e. ones that can't be done yet, such as quest turn-ins for incomplete quests. This is probably most useful if you prefer to hide the "ant trails", as the route it will compute will be somewhat of a lie.

You can force QuestHelper to show an objective that otherwise would have been filtered by typing /qh hidden and selecting Show from its entry in the menu.

Sharing

Sharing allows you to share your objectives with other party members, allowing you to combine your routes and work together effectively.

Note that sharing only tells your peers what objectives you have, your completion progress for them, and the priorities you have assigned to them. Information such as item drops and monster locations are not shared.

Each peer will take this information and calculate their own route from it. Assuming you stay together and work cooperatively, which was the whole idea behind this feature, your routes should end up being almost completely identical, and you can follow it and rest assured that nobody is getting left behide. Objectives shared by multiple users won't be removed until everybody has completed it.

User objectives, by default, aren't shared. If there is somebody available to share with, an option will appear in the right-click menu for that objective to allow you to share it manually.

Objective priorities are shared globally. If one user changes the priority of an objective, that change will be reflected in all peers. This, again, was done to ensure that everybody's routes end up being roughly identical, and so that peers would have the correct priorities for timed quests. And it's also a nice feature. Assuming the people you're partied with aren't ass hats.

Slash Commands

  • /qh help
    Lists all the QuestHelper slash commands.
    • /qh help command
      Tells you about a specific command.
  • /qh settings
    Opens the Settings menu at the current cursor location. Note that not all settings can be changed through the menu.
  • /qh track
    disables/enables QuestHelper's Quest Tracker, which provides status on your nearest objectives, in place of the default Tracker.
  • /qh hidden
    Displays a list of all the hidden objectives, why they are hidden, and depending on the reason, will allow you to unhide them.
  • /qh ftime
    Toggles the display of the flight time estimates.
  • /qh locale locale
    Sets the locale to use for displayed text., or lists possible locales if no argument is given.
    Defaults to your client's locale the first time you run QuestHelper. The only locale that is complete right now is enUS. Missing translations will be marked with red text.
  • /qh share
    Toggles objective sharing on and off. When on, will share quest objectives and progress with other party members that are using QuestHelper 0.17 or higher, and also have sharing enabled.
  • /qh solo
    Will disable quest sharing and ignore anyone you might be partied with, basically assume you will receive no aid from your party members.
  • /qh comm
    Toggles the display of the data sent between peers. I use this for debugging, but some people just love to stare at streams of meaningless data. It's really quite hypnotic. . .
  • /qh hide
    Hides QuestHelper's minimap arrow and World Map icons and paths, and suspends the calculation of routes.
  • /qh cartwp
    Toggles using Cartographer Waypoints to display your current objective.
  • /qh tomtom
    Toggles using TomTom to display waypoints for your current objective.
  • /qh button
    Toggles the QuestHelper button on the World Map frame.
  • /qh level offset
    Sets the level offset used by the level filter. Can be positive or negative. Invoke with no arguments to see the current offset and your effective level at various party sizes.
    • /qh level 0
      Only show quests at or below your own level.
    • /qh level +2
      Show quests up to two levels above your own level. This is the default.
  • /qh nag
    Prints counts of all the new or updated quests, objectives, etc, that you have found that aren't in the supplied database.
    Note: To reduce memory usage, QuestHelper deletes static quest data that doesn't belong to your faction. So, if you play both sides, it will always think the quests you did for the opposite faction are new.
    • /qh nag verbose
      Displays the specific differences between your data and the static data.
  • /qh find category query
    Allows you to create custom objectives by searching for known items, NPCs, and locations. The queries allow fuzzy string matching, and so should happly accept typos and partial matches.
    Note that if you attempt to create an objective twice, it will instead hide it.
    • /qh find item item-name
      Search for items.
    • /qh find npc npc-name
      Search for NPCs or monsters.
    • /qh find loc zone-name x y
      Search for a location in a zone. You may also use a comma, should you feel the need to.
    • /qh find loc x y
      Search for a location in your current zone.
    • /qh find search-string
      Searches in all categories.
    • /qh find
      Invoking the find command without any arguments will instead display all your current user created objectives, allowing you to easily turn them off.
  • /qh filter filter-name
    Toggles objective filters on or off.
    • /qh filter level
      Shows or hides objective that you probably can't do. Note that this considers the the levels of everyone in your party, not just you. If you're partied with somebody higher than you, it might not hide a quest that it otherwise would have.
    • /qh filter zone
      Shows or hides objective that aren't in your current zone.
    • /qh filter done
      Shows or hides quests that aren't complete.
    • /qh filter blocked
      Shows or hides objectives that are blocked, i.e. require something else to be done first, such as turn-ins for incomplete quests.
  • /qh scale value
    Scales the map icons by this amount of their default size. Will accept a number or a percentage, in the range of 50-300%.
  • /qh perf value
    Scales the CPU workload for QuestHelper's route calculation routine. Will accept a numbere or a percentage, in the range 10-500% (although we don't recommend going above 100%).
  • /qh recalc
    Recreates the world graph and location and distance information for the active objectives. You probably don't need to worry about this.
  • /qh purge
    Deletes all your collected data. I'd prefer if you avoided using this any time other than immediately after sharing your collected data.
    Requires that you to enter a randomly generated 8 character case sensitive alphanumeric password, to hopefully ensure that people read the message that gets displayed.
  • /questhelper
    Alias for /qh.
  • /find, /qhfind,
    Alias for /qh find.
  • /qh find monster
    Alias for /qh find npc.
  • /qh find location
    Alias for /qh find loc.

How You Can Help

Data

I need data. If you want to share your saved data with me, that'd be great. The file I need is stored in the following location, assuming you're using Windows and didn't change the installation path:

C:\Program Files\World of Warcraft\WTF\Account\ACCOUNT_NAME\SavedVariables\QuestHelper.lua

Some have reported that for Vista their path is:

C:\Users\<UserName>\AppData\Local\VirtualStore\Program Files\World of Warcraft\WTF\Account\<Account NAME>\SavedVariables

I use vista and it is in the normal windows spot for me, but apparently some of you aren't normal.

To make things even more difficult, it seems that Windows might try 'help' you by hiding file extensions. This makes 'QuestHelper.lua' appear as 'QuestHelper'. Warcraft makes backups of all these files, so there is a 'QuestHelper.lua.bak' file in there as well, and without its file extension, it appears as 'QuestHelper.lua', but it isn't really and it's not actually the file I want.

Be careful not to descend into the realm / character directories, we specifically want the SavedVariables directory. There are QuestHelper.lua files in the other directories as well, but they only store which flight routes your characters know, and aren't actually useful. On a similar note, I also don't want the file named SavedVariables.lua, which contains your UI preferences and is entirely unrelated.

You can email it to me at:

qhaddon@gmail.com

This address is NOT the proper place to direct inquires about the addon.. that should be done in the comments below. NO messages sent to this address are EVER read as it receives more than anyone could hope to read. The only thing that logs into that account is an AUTOMATED script to download all the attachements.

Many have asked how often to send in data. My personal preference is basically this: Look at the message QH displays when you first log in or do a /console reloadui... if it says you have updated information on X quests, these are quests that you completed an objective for in a spot that QH had not seen before. Unless you have many, probably not worth your work of e-mailing it. However if QH says you have information on X new quests, you have completed a quest QH didn't know how to do. Please share! Someone out there will have that quest and thank you!

Please note that the above has nothing to do with installing this AddOn. You install this AddOn the same way you would install any other AddOn, by unzipping it into the Interface/AddOns folder.

And, of course, a huge thanks to everyone that has sent me their data so far. It's very much appreciated.

Translations

Eventually, the text in lang_enus.lua will need to be translated into other languages.

If you don't want to edit the lua files directly, there's a web page you can use: http://smariot.hopto.org/translate



If you edit the files directly, please use UTF-8 encoding. That's the encoding the WoW client uses, I don't want to try to convert it, and in any case, I have a strong biased opinion that codepages are evil.

Development

There is a Git mirror for this project's code: git://cams.pavlovian.net/questhelper.git

It isn't in a very user friendly state right now, but if I waited until it was perfect, it would never be released. So here it is.

Tasks

Things that stand a reasonable chance of happening in the near future:

  • Better support for flying mounts
  • Remembering quest priorities after logout
  • "Too Tough For Me" button, temporarily ignoring a quest until you've leveled

Things I'd like to do that may take a long, long time:

  • Rewrite pathfinding to be aware of mountains and other obstacles.
  • Track drop rate of quest items, estimate the number of kills you'll need to complete
  • Better path optimization, prioritizing "easy experience"
  • Addition of "quest-like goals", including vendor recipes, unadded flight paths, weapon/skill training, repairs/vendors, reagent/ammo restocking, and so forth
  • Automatic tracking of followup quests