Get an Epic Experience with Premium


Quests & Leveling Login to Add Favorites
  • World of Warcraft
  • 7,726 Monthly Downloads
  • Supports: 5.4.7
  • 260,998 Total Downloads
  • Updated 09/06/2014
  • Created 01/25/2011
  • 249 Favorites
  • Project Site
  • Release Type: Release
  • License: BSD License
  • Newest File: 064

About Grail

Grail is a library of quest information designed to provide that quest information to other addons to make their decision processing easier. For example, an addon like EveryQuest or TourGuide would be able to make use of Grail's knowledge to determine if a quest has been completed, whether the character can obtain a quest, what reasons the character cannot obtain a quest (lack of level, wrong race, wrong class, not enough reputation, has not completed a prerequisite quest, etc.), the location to obtain or turn in a quest, the amount of reputation awarded from completing a quest, whether a quest counts towards an achievement, etc.

Starting with version 029, Grail's achievement and reputation gained information are separated into two loadable on demand addons included in the package.

Please make comments on Grail in the Grail forum or create a ticket if you find problems.

Prereleases can be found on the official Prerelease Page for those interested.

Making Grail better

As a user of Grail plays WoW, Grail's internal database is checked as a player accepts and turns in quests. If Grail has incorrect data, it will record the actual data the player has found in the Grail saved variables file. This file can be used to update Grail for future releases if you choose to provide this information (in a ticket for example). As the Grail database becomes more accurate, the Grail saved variables file will have any previously found discrepencies removed. The Grail saved variables file can be found in your WoW directory/WTF/Account/account name/SavedVariables directory with the name Grail.lua.

If you are using WoW in a locale other than enUS, you can help provide up-to-date localized NPC names by issuing the slash command /grail verifynpcs at some point while playing. This will record into the Grail saved variables file the localized names of NPCs you have encountered for which Grail does not have the proper name.

Using the slash command /grail help lists all the options Grail has.

   Updates some quest/NPC information.
   Corrects prerequisite evaluation when analyzing more than one path that have different results (like Alliance vs Horde both leading to the same quest).
   Speeds up prerequisite tree analysis.

   Updates some quest/NPC information.
   Unified the reputation requirements into the prerequisite codes.
   Allows A: and T: codes to work in conjuction (additive) with the faction-specific versions.
   Allows AZ: codes to have more than one map area.

   Corrects a problem where quests with First Aid prerequisites would cause a Lua error.

   Updates some quest/NPC information.
   Added the ability for prerequisite evaluation to only check profession requirements.
   Corrected the evaluation of ancestor failures to properly propagate past the first level of quest failure.

   Updates some quest/NPC information.
   Updates the issue recording system to provide a little more accurate information to make processing saved variables files easier.

   Caches the results obtained from ItemPresent() to make quest status updates faster, invalidating the cache as appropriate.
   Updates some quest/NPC information.
   Changes the NPC IDs used to represent spells that summon pets to remove a conflict with actual items.
   Changes some of the internal structures used to save some memory.
   Corrects an issue where the Loremaster quest data for Pandaria was not populating an internal structure properly (causing Loremaster not to display map pins).
   Updates _QuestsInLog() to work better when various headings are closed in the Blizzard quest log.

   Augments ClassificationOfQuestCode() to return 'K' for weekly quests.
   Updates some quest/NPC information.
   Makes handling LOOT_CLOSED not be so noisy with chat spam.
   Makes processing the UNIT_QUEST_LOG_CHANGED event delayed by 0.5 seconds to allow walking through the Blizzard quest log using GetQuestLogTitle() to work better.

   Corrects some issues stemming from new repuation information.
   Adds some localizations of quest/NPC names.

   Updates some quest/NPC information.
   Fixes a variable leak that causes problems determining prerequisite information.

   Updates some quest/NPC information.
   Fixes an infinite loop issue when evaluating data in the Valley of the Four Winds.
   Fixes a Lua issue that manifests when Dugi guides are loaded, because Grail was incorrectly using a variable that Dugi guides leaks into the global namespace.
   Caches the results obtained from _QuestsInLog() to make quest status updates faster, invalidating the cache as appropriate.
   Fixes a rare error caused when cleaning the database of reputation data evident by an "unfinished capture" error message.
   Adds the ability to treat the chests on the Timeless Isle as quests.
   Adds the slash command "/grail loot" to control whether the LOOT_CLOSED event is monitored as that is used to handle Timeless Isle chests.
   Makes persistent the settings for the slash commands "/grail tracking" and "/grail debug".
   Makes CanAcceptQuest() not return true if the quest is obsolete or pending.

   Updates some quest/NPC information.
   Incorporates prereqisite population API originally written in Wholly.
   Fills out the Pandaria "loremaster" achievements to include all the prerequisite quests for each sub achievement quest.

   Updates some quest/NPC information.
   Corrects an error that would cause an infinite loop in evaluating data in Ashenvale for quest 31815, Zonya the Sadist.

   Updates some quest/NPC information.
   Adds some Wrathion achievements.
   Moves some achievements into continents that are a little more logical.
   Separates some achievements to give a little finer-grain control.
   Updates some zhCN localizations.

   Adds Midsummer quests for Pandaria.
   Updates some quest/NPC information not associated with Midsummer.
   Changes _CleanDatabase() to better handle NPCs that have prerequisites.
   Corrects a problem where questReputations was not initialized when reputation data was not loaded.
   Adds the ability to have an equipped iLvl be used as a prerequisite.

   Corrects a problem with QuestPrerequisites() and nil data.

   Changes the Interface to 50300 for the 5.3.0 Blizzard release.
   Updates some quest/NPC information, primarily with the Isle of Thunder.
   Adds a new loadable addon, Grail-When, that records when quests are completed.
   Adds a flag to QuestPrerequisites(), allowing the lack of flag to cause the behavior to return to what it was previously, and with the flag the newer behavior.

   Makes it so choosing PvE or PvP for the day on Isle of Thunder is handled well.
   Adds IsQuestObsolete() and IsQuestPending() which use the new Z and E quests codes that can be present.  If either returns true, the quest is not available in the current Blizzard client.
   Adds support for the new way reputation information is being stored.
   Converts prerequisite information storage to no longer use tables, saving about 1.0 MB of space.

Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Destiny Customization Contest