Download
(6MB)
Download
Updated: 06-30-21 04:20 PM
Compatibility:
Chains of Domination (9.1.0)
The Burning Crusade Classic (2.5.1)
Shadowlands patch (9.0.5)
Classic Patch (1.13.7)
Updated:06-30-21 04:20 PM
Created:01-31-12 07:27 PM
Downloads:104,925
Favorites:151
MD5:

Grail  Popular! (More than 5000 hits)

Version: 116
by: Nimhfree [More]

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. Starting with version 049, Grail includes a loadable on demand addon that records when a quest is complete, and how many times if it is repeatable.

Please create a ticket if you find problems.


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.

Version 116
Switches to a unified addon for all of Blizzard's releases.
Augments _CovenantRenownMeetsOrExceeds to accept covenant 0 to represent the currrently active covenant, used to indicate that the renown level is at a specific level independent of covenant.
Changed retail interface to 90100.

Version 109
Updates some Classic NPC information.
Works around a problem in Retail where world quests can appear in Blizzard's API in different zones.
Corrects the determination of Darkmoon Faire in Classic.
Changes quest level storage and processing.
Optimizes NPC location processing to cache values.

Version 108
* *Updates Classic Wetlands and Duskwood NPC information.
* *Updates Retail horror quest information.
* *Works around a problem learning world quests where the mapId is not defined.
* *Corrects the Classic holiday code for Midsummer Fire Festival.
* *Adds support for detecting Darkmoon Faire in Classic.
* *Works around a problem where a holiday is not known.
* *Corrects issue where CurrentDateTime() did not return weekday in Classic.
* *Adds support for phase code 0000 in Classic for Darkmoon Faire location.* See _PhaseMatches() comments for specifics.
* *Updates some Retail quest information.
* *Corrects a Lua issue with localized French Classic quest names.
* *Adds protection to ensure processing of NPCs does not occur if NPCs are not loaded.
* *Adds protection to ensure loremaster quests can be handled if addons load out of order.
* *Adds protection to ensure C_Reputation is not accessed on Classic.
* *Corrects an improper prerequisite associated with the Classic quest "Filling the Soul Gem".
* *Adds more Classic holiday quests and NPCs.

Version 107
Updates some quest/NPC information.
Works around a problem where learned quest information could cause Lua strsplit errors.
Changes interface to 80300.
Adds support for threat quests.
Adds support for Heart of Azeroth level requirements.

Version 106
Updates some quest/NPC information.
Corrects a problem where lack of quests in a zone causes a Lua issue when quests in the log turnin in that zone.

Version 105
Fixes problem where AQ quests cause Lua error in non-English locales.
Updates some quest/NPC information.

Version 104
Updates some quest/NPC information.
Fixes the implementation of CurrentDateTime() because the month and day were reversed.
Corrects CelebratingHoliday() to behave and perform better.
Sets faction obtainers to account for quest giver faction.
Corrects IsNPCAvailable() to properly use holiday markers for NPCs.
Augments QuestsInMap() to allow quests in the log whose turn in is in the map to be included.

Version 103
Updates some quest/NPC information.
Removes reimplementation of GetMapNameByID().
Removes call to load Blizzard_ArtifactUI since ElvUI has problems.
Makes it so holiday codes for quests do not cause Lua errors in Classic, though still do not work as there is no Classic calendar.
Adds support for Mechagnome and Vulpera races.
Adds support for the "/grail eraseAndReloadCompletedQuests" slash command.

Version 102
Updates some quest/NPC information.
Adds the NPCComment() function to give access to NPC comments.
Fixes a Lua error associated with quests requiring garrison buildings.

Version 101
Updates some quest/NPC information.
Changes the code that detects group quests as Hogger in Classic returned a string vice a number.
Changes IsPrimed() to no longer need the calendar to be checked in Classic.
Forces Classic to query for completed quests at startup because calendar processing is not done (where it was done as a side effect).
Creates an implementation of ProfessionExceeds() that works in Classic.

Version 100
Updates some quest/NPC information.
Enables support for the two latest Allied races.
Updates Interface in TOC to 80200.
Starts to add support for newly added zones.
Transforms GrailDatabase to use Grail.environment so _retail_ differs from _ptr_ differs from _classic_.
Augments the mapping system because Blizzard API is a little wonky and does not report zones like Teldrassil in Kalimdor like one would expect.
Adds support for quests to be marked only available during a WoW Anniversay event.

Version 099
Updates some quest/NPC information.
Corrects a problem where cleaning quest data could result in a Lua error.

Version 098
Updates some quest/NPC information.
Adds Silithus to zones for quest looting.
Names treasure quests based on the item looted.
Updates map areas for Loremaster quests.

Version 097
Updates some quest/NPC information.
Removes map setting code as it is not needed.
Checks whether locations have x and y coordinates before comparing.
Checks whether Blizzard map returns are rational before asking for player coordinates.
Ignores checking Thunder Isle for phasing for the moment.

Version 096
Updates some quest/NPC information.
Handles Blizzard removing GetCurrentMapDungeonLevel() and GetCurrentMapAreaID().
Achievements are now indexed by the continent mapID instead of a one-up number.
The "continent" constants are removed from Grail as they were not used internally and serve no scalable purpose.
Continent information now uses Blizzard's new API for maps.
Updates use of UnitAura() to support Blizzard's changes for Battle for Azeroth.
Reimplements GetMapNameByID() because Blizzard removed it for Battle for Azeroth.
Starts reimplementing GetPlayerMapPosition() because Blizzard removes it for Battle for Azeroth.
Handles Blizzard's change of calendar APIs.

Version 095
Update some quest/NPC information, but primarily the required level of thousands of quests due to Blizzard changing them.

Version 094
Corrects the problem where BloodElf was being overritten by Nightborne.

Version 093
Updates some quest/NPC information.
Adds the ability to have class hall missions available as prerequisites.
Adds support for Allied races.
Changes CodeObtainers() to no longer return race information, which is now returned in a similar manner with CodeObtainersRace().

Version 092
Updates some quest/NPC information.
Corrects a problem where Loremaster quests were not listed correctly when there is more than one achievement in the same zone.
Corrects the problem where paragon faction levels were not reported properly after more than one reward achieved.

Version 091
Updates some quest/NPC information.
Updates the Interface to 70300.
Adds Argus zones to treasure looting.

Version 090
Updates some quest/NPC information.
Supports quests requiring paragon reputations.
Supports the Argus continent being introduced in 7.3.

Version 089
Corrects problem where garrison NPC building prerequisites was causing a Lua error.
Updates some quest/NPC information.

Version 088
Changes the Interface to 70200
Updates some quest/NPC information for Legion.
Adds the ability to handle artifact levels which are required for some newer quests.

Version 087
Updates some quest/NPC information for Legion.
Corrects problem where GrailDatabase.learned was not being initialized before accessed.
Uses Blizzard's new calendar API present in 7.2.

Version 086
Updates some quest/NPC information for Legion.
Adds capability to know when withering is happening with NPCs.

Version 085
Corrects problem where map was reseting to Eye of Azshara.
Updates some quest/NPC information for Legion.

Version 084
Adds the ability to know when world quests are available.
Updates some quest/NPC information for Legion, especially world quests.

Version 083
Updates some quest/NPC information for Legion.

Version 082
Updates some quest/NPC information for Legion.
Turns reputation recording system back on as Blizzard API seems to be working properly again.
Splits localized quest names into loadable addons.

Version 081
Updates some quest/NPC information for Legion.
Adds factions for Legion.
Fixes the problem with strsplit error that can happen when first looting.

Version 080
Corrects a problem where learning a quest causes an error if nothing else already learned.
Updates some quest/NPC information for Legion.

Version 079
Updates some quest/NPC information, especially for Legion.
Corrects use of C_Garrison.GetGarrisonInfo() for Legion as it has changed.
Provides for prerequisites to require a specific player class.
Fixes an issue where Blizzard changed the C_Garrison.GetBuildings() API not in Legion beta, but in the live release based on it.
Changes the Interface to 70000.

Version 078
Updates some quest/NPC information, especially for Legion.
Corrects Legion detection since release version is inadequate with the latest update Blizzard made to WoD live.

Version 077
Updates some quest/NPC information.
Adds the ability to support required NPCs working in garrison buildings.

Version 076
Updates some quest/NPC information.
Corrects the problem where the map location is lost on UI reload.

Version 075
Updates some quest/NPC information.
Adds support for bodyguard levels.
Adds support for Adventure Guide quests using the fake NPC ID 1, also using the fake map ID 1.
Corrects the implementation of _PhaseMatches() to properly note Frostwall level.
Adds support for events and more accurate holiday starts/stops.

Version 074
Updates some quest/NPC information.
Adds IsPetBattle() API.
Adds the ability to have more than one X code requirement.
Corrects the implementation of AchievementComplete().
Implements some variations on some prerequisite codes.

Version 073
Updates some quest/NPC information.
Fixes the issue where the wrong API MeetsRequirementControl was being used.

Version 072
Updates some quest/NPC information.

Version 071
Updates some quest/NPC information.
Adds new prerequisite code 'w' for group complete/turn in.
Adds the ability to record quest reward information.

Version 070
Updates some quest/NPC information.

Version 069
Updates some quest/NPC information.
Adds the ability to mark quests as bonus objective, rare mob and treasure.
Changes the Interface to 60200.

Version 068
Updates some quest/NPC information.
Adds ability to handle garrison building requirements for quests.
Adds ability to have level requirement for quest that differs from what Blizzard marks as their quest minimum level.

Version 067
Updates some quest/NPC information.
Adds ability to indicate a quest rewards a follower.

Version 066
Updates some quest/NPC information.
Adds function FactionAvailable() to allow users to determine whether the faction is available for the player.

Version 065
Updates some quest/NPC information.
Corrects a problem where First Aid quests were not being put into their own "zone" properly.
Adds the ability to complete quests when gossiping with an NPC.
Changes internal processing of qualified NPCs to stop evaluating at the first match (allows Fiona's Caravan locations to be accurate).
Changes use of GetQuestLogTitle(), and a lot more Blizzard API to handle WoD changes.
Corrects the problem where tracking quest acceptance, abandoning and completion was not set up properly based on saved preferences.
Splits out NPC names into separate localized files because Blizzard can no longer handle them in one.
Changes the Interface to 60000.

Version 064
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.

Version 063
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.

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

Version 061
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.

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

Version 059
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.

Version 058
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.

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

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

Version 055
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.

Version 054
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.

Version 053
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.

Version 052
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.

Version 051
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.

Version 050
Corrects a problem with QuestPrerequisites() and nil data.

Version 049
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.

Version 048
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.

Version 047
Updates some quest/NPC information, primarily with the Isle of Thunder.
Adds the basics for the quests added in the 5.3.0 PTR release 16758.
Events in combat are forced to be delayed, but the user can still override.
Changes the internal design of the NPCs to save about 0.6 MB of space.

Version 046
Updates some quest/NPC information.
Speeds up the CodesWithPrefix() routine provided by rowaasr13. This reduces the chance of running into an issue when teleporting into combat.
Adds F code prerequisites which indicate a faction requirement. Demonstrate this with two Work Order: quests, but will be used primarily for "phased" NPC prerequisites, whose architecture is starting to be implemented.
Updates some Traditional Chinese localizations.

Version 045
Updates to Isle of Thunder King/Isle of Giants quests from 5.2 PTR.
Updates some Traditional Chinese localizations.
Updates some quest/NPC information.
Updates the technique where a quest is invalidated to properly include not being able to fulfill all prerequisites that include groups.
Puts quests whose start location does not map directly to a specific zone into their own "Other" map area.
Augments the API that returns NPC locations to include created and mailbox flags.

Version 044
Removes the Grail-Zones.lua file since the names are now gotten from the runtime.
Puts in support for "/grail events" allowing control over processing of some Blizzard events received while in combat until after combat.
Updates some quest/NPC information for Operation: Shieldwall.
Removes the Grail.xml and rewrites the startup to account for its lack.
Adds very basic quest information for 5.2 PTR quests from 2013-01-02.
Removes the quests on Yojamba Isle since there are no NPCs there.
Updates some Netherstorm quests for Aldor/Scryers information.
Updates some quest localizations for Simplified Chinese.

Version 043
Corrects the prerequisites for the Chi-Ji champion dailies.
Updates the Shado-Pan dailies' NPCs.
Updates some quest/NPC information for Jade Forest, Kun-Lai Summit, Durotar and the dailies available in 5.1.
Updates the TOC to support interface 50100.

Version 042
Corrects an initialization problem that would cause a Lua error if dailyQuests were not gotten before evaluated.

Version 041
Adds support for quests having prerequisites of having ever experienced a buff.
Changes the internal representation of NPC information to separate the NPC names to make the data more "normal".
Augments the way the reputationLevelMapping table provides information so it can provide specific numeric values over the minimum reputation.
Adds the ability to have quests grouped so able to invalidate groups based on daily counts, or make prerequisites of a number of quests from a group.
Updates some quest/NPC information for Tillers, Golden Lotus, Order of the Cloud Serpent, Shado-Pan, August Celestials, Anglers and Klaxxi dailies.
Adds very basic quest information for 5.1 PTR quests from 2012-10-25.
Adds the ability to invalidate a quest by accepting a quest from a quest group.
Adds the ability for quests to have a prerequisite of a maximum reputation.
Adds code that abandons processing the server completed quests if the return results do not represent the total number of quests completed as compared to the locally stored count.

Version 040
Updates some quest/NPC information for Howling Fjord, Jade Forest, Krasarang Wilds, Townlong Steppes, Valley of the Four Winds, Kun-Lai Summit and Vale of Eternal Blossoms.
Removes the raceMapping, raceNameFemaleMapping, raceNameMapping and raceToBitMapping tables.
Changes the format for reputation change logging.
Adds reputationLevelMapping table that Wholly was using because it will be changed as more information is known, and there should be no need for Wholly to need to change.

Version 039
Updates some quest/NPC information for Vale of Eternal Blossoms, Kun-Lai Summit, Borean Tundra, Dread Wastes and Valley of the Four Winds.
Adds support for prerequisites to be able to have OR requirements within an AND requirement, instead of just outside them.
Adds support for CanAcceptQuest() to not allow bugged quests to be acceptable.
Replaces the raceMapping, raceNameFemaleMapping, raceNameMapping and raceToBitMapping tables with races. These older ones will be removed in version 40.

Version 038
Adds some Italian localization and quest localization updates for release 16030.
Updates some quest/NPC information for Jade Forest, Northern Stranglethorn, Vale of Eternal Blossoms and Echo Isles.
Adds ability for a quest to have prerequisites of a general skill, used by battle pets for example.
Refines meeting prerequisites when part of the requirements includes possessing an item.

Version 037
Updates some quest/NPC information for Twilight Highlands, Deepholm, Uldum, Sholazar Basin and Mount Hyjal.
Adds DisplayableQuestPrerequisites() so flag quests can be bypassed, showing their requirements instead.
Adds some Italian localization.
Adds support for account-wide quests.

Version 036
Fixes the problem where accepting and abandoning a quest with a breadcrumb was not setting the breadcrumb status properly.
Fixes the problem where quests could be considered to fail prerequisites if the only prerequisites were quests requiring presence in the quest log.
Updates some quest/NPC information for MoP beta, including Night Elf and Draenei starter zones.
Updates quest information to allow marking quests Scenario and Legendary.
Removes Grail.bitMaskQuestNonLevel as the internal data structures have changed, no longer requiring this.
Adds HasQuestEverBeenAccepted() to be able to handle O type prerequisites.
Removes Grail.reputationBlizzardMapping since it is no longer needed because of the use of Blizzard faction IDs.

Version 035
Updates Midsummer Fire Festival localization for Korean, Spanish and German.
Updates more NPC/quest localizations.
Updates the quest recording subsystem to generate basic K codes.
Changes the reputation system to no longer use indirection, but Blizzard faction IDs.
Updates the quest recording subsystem to record faction rewards on quest acceptance, and turns off recording faction rewards when quests are turned in.
Corrects the problem where quests that start automatically when entering a zone can appear improperly in the current zone (based on the current zone name).
Changes the technique by which the server is queried for completed quests since API has been changed for MoP.
Updates some quest/NPC information for Valley of the Four Winds and Krasarang Wilds.
Makes it so B codes are automatically generated from the quests with O codes, so the vast majority of B codes need not be present in the data file.
Adds the ability to create profession prerequisite codes (vice the normally supported profession requirements).

Version 034
Updates some quest/NPC information for Wandering Isle.
Creates new Grail.reputationExpansionMapping table to replace the original four tables which are deprecated and will be removed in version 035.
Updates Midsummer Fire Festival quest/NPC data, primarily the Portuguese localization.

Version 033
Updates some quest/NPC information for Blasted Lands, Eastern Plaguelands, Tirisfal Glades, Undercity, Winterspring, Zul'Aman and professions.
Adds some Spanish translation from Trisquite.
Changes the implementation of _ReputationExceeds() to use GetFactionInfoByID() instead of GetFactionInfo() since it seems there are times when the latter does not return proper values at startup.

Version 032
Adds some German translation from polzi.
Augments CanAcceptQuest() to include a parameter to ignore holiday requirements.
Updates some quest/NPC information for some dungeons, Oracles/Frenzyheart, Worgen starting areas, Tol Barad and others.
Changes the comparisons to completed quests to be more mathematically robust.
Corrects a problem where cleaning the database can cause a LUA error.

Version 031
Corrects the internal checking of reputation gains to not include modifications when the reputation is lost.
Adds the verifynpcs slash command option.
Updates some localizations, primarily Portuguese and Korean.
Updates some quest/NPC information for Dun Morogh, Loch Modan, Wetlands, Vash'jir and Kelp'thar Forest.
Corrects the problem where quests with breadcrumbs were being marked as not complete after a reload.
Adds processing to startup to ensure Grail attempts to get the server quest status automatically.
Corrects AncestorStatusCode() to ignore non-quest prerequisites.
Adds the ability to have quests have items or lack of items as prerequisites.
Adds support for ODC: quest codes, which are used to mark other quests complete when a quest is turned in.
Adds the ability to have quests use the abandoned state of quests as prerequisites.

Version 030
Corrects a problem that manifests itself when running the ElvUI addon.

Version 029
*** Will not work with Wholly 16 or older ***
Splits out two load on demand addons to handle achievements and reputation gains.
Updates some quest/NPC information for the Lost Isles, Feralas and some dungeons.
Updates some localizations, primarily Portuguese, Korean and Simplified Chinese.
Corrects the problem where some daily quests that also have another aspect (e.g., PVP or dungeon) were not being shown as daily quests.
Updates the automatic quest level verification system to ensure quests that are considered to have a dynamic level actually do.
Adds basic structural support for the Italian localization.
Consolidates the internal use of prerequisite quest types into a unified technique, causing all QuestPrerequisite* API to be REMOVED other than QuestPrerequisites.
Fixes the problem where quests with AZ codes were not being added to the proper zone.
Fixes the problem where the status of quests that require other quests being in the quest log was not being displayed properly.
Adds the Kalu'ak Fishing Derby holiday.
Updates some quest/NPC information for the fishing contests.

Version 028
*** Will not work with Wholly 15 or older ***
Corrects the mapAreaMaximumReputationChange constant.
Revamps the location providing routines so only the new QuestLocations() and NPCLocations() are needed, REMOVING the older ones.
Updates some quest/NPC information for Un'Goro Crater, Silithus, Burning Steppes, Kezan, The Lost Isles, Northern Barrens, Ashenvale, some dungeons and Winterspring.
Fixes detection of European servers to remove non-existent quests.
Updates some Portuguese localizations.
Makes _CleanDatabase() a little more intense with its cleaning.
Makes the system than checks for reputation gains a little more accurate.
Records actual quest completion for those quests that Blizzard marks complete with others in the server, so clients can know really which quest was done.
Implements a way to know when Blizzard uses internal marking mechanics (which differ from flag quests) to specify when quests are available.
Adds an architecture to support information about quests that are bugged.
Post A Reply Comment Options
Unread 08-29-19, 05:46 AM  
Meloric
A Deviate Faerie Dragon

Forum posts: 14
File comments: 31
Uploads: 0
Re: Re: Grail/Wholly in Classic?

Originally Posted by Nimhfree
Yes, they work (with a few limitations to the Wholly quest panel that are being worked on). However, as you have seen, the quest data is limited. For Classic all the quest data needs to be gathered because I have found that the Retail data does not match and I feel it is better to gather the data fresh instead of making people go places where quests are not. Please send your Grail.lua saved variables file to help update the Grail database if you can.
Thanks for the answer. That makes sense because I know a lot of the lower area quests are completely different in classic vs. retail. I'll send along my Grail.lua in a few days as soon as I finish a few more zones.

One other question... is it necessary to all the retail data folders installed to the classic interface folder or can I just use the classic ones? I know the retail portions won't be loaded/used when playing classic. Just trying to cut down on size of my addons folder.
Report comment to moderator  
Reply With Quote
Unread 08-28-19, 05:46 PM  
Nimhfree
A Frostmaul Preserver
AddOn Author - Click to view AddOns

Forum posts: 267
File comments: 51
Uploads: 2
Re: Grail/Wholly in Classic?

Originally Posted by Meloric
It was my understanding that they"should" work with the classic client with the changes you have been making to get them to work on both clients. Is my "thinking" incorrect?

I'm currently using the version 100 but when I open the Wholly panel, it is showing only quests in the starter (level 1-5) areas. This was in the Coldridge Valley area. Entering into the next area or selecting some other area does not show any quests.

I have tried with only installing the classic files and also installing all the files, but still does not show other quests in the Wholly page. Any ideas or will Grail get caught up as I quest in other areas?
Yes, they work (with a few limitations to the Wholly quest panel that are being worked on). However, as you have seen, the quest data is limited. For Classic all the quest data needs to be gathered because I have found that the Retail data does not match and I feel it is better to gather the data fresh instead of making people go places where quests are not. Please send your Grail.lua saved variables file to help update the Grail database if you can.
Report comment to moderator  
Reply With Quote
Unread 08-28-19, 04:58 PM  
Meloric
A Deviate Faerie Dragon

Forum posts: 14
File comments: 31
Uploads: 0
Grail/Wholly in Classic?

It was my understanding that they"should" work with the classic client with the changes you have been making to get them to work on both clients. Is my "thinking" incorrect?

I'm currently using the version 100 but when I open the Wholly panel, it is showing only quests in the starter (level 1-5) areas. This was in the Coldridge Valley area. Entering into the next area or selecting some other area does not show any quests.

I have tried with only installing the classic files and also installing all the files, but still does not show other quests in the Wholly page. Any ideas or will Grail get caught up as I quest in other areas?
Last edited by Meloric : 08-28-19 at 04:59 PM.
Report comment to moderator  
Reply With Quote
Unread 07-17-19, 02:44 AM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
Once more, into the chat errors!

"Grail problem because completing quest which seems not to exist 56139"

https://www.wowhead.com/quest=56139/junkyard-treasures World Quest to open 6 mechanized treasure chests.

-Barleduq
Report comment to moderator  
Reply With Quote
Unread 07-15-19, 09:39 PM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
More quests Grail doesn't know about.

I'm getting more chat errors from Grail. These are from today:

Grail: QuestId mismatch 51022 accepted but log has 0

came up in the scroll that occurs when you login. Looking on wowhead, that quest id is for the world quest Supplies Needed: Riverbud which is, indeed, a wq that is in Boralus, where I was on login.

6 seconds later, same error but with questid 42420 which is the Court of Farondis emissary quest. Which is, indeed, the third emissary quest in Broken Isles today, but it really should have seen that one before.

I'm not sure if the Riverbud one is new to 8.2. To be honest, I've been mostly ignoring these types of errors, as it doesn't affect gameplay and it's not spitting LUA errors. I know a screenshotted some from a few days ago; if you'd like, I can at least find the pic on my computer and grab the quest ids.

-Barleduq
Report comment to moderator  
Reply With Quote
Unread 01-21-19, 12:44 AM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
I've got the current version of grail installed

Is this the same error I posted last time? My apologies, I've had a cold for over a month, and I'm hoping this helps get rid of errors.

Code:
Date: 2019-01-21 01:35:50
ID: 2
Error occured in: Global
Count: 1
Message: ..\AddOns\Grail\Grail.lua line 8058:
   script ran too long
Debug:
   Grail\Grail.lua:8058: func()
   Grail\Grail.lua:7929:
      Grail\Grail.lua:7890
   (tail call): ?
   Grail\Grail.lua:8049: _ProcessQuestsForHandlers()
   Grail\Grail.lua:4950: _CodeAllFixed()
   Grail\Grail.lua:5333: CreateIndexedQuestList()
   Grail\Grail.lua:1256: ?()
   Grail\Grail.lua:9753: _Tooltip_OnEvent()
   Grail\Grail.lua:10313:
      Grail\Grail.lua:10313
Locals:
controlTable = <table> {
 andItem = "46734"
 index = 0
 plusCount = 1
 innorItem = "46734"
 questId = 47067
 func = <function> defined @Interface\AddOns\Grail\Grail.lua:8055
 useIndex2 = false
 andIndex = 1
 pipeCount = 0
 codeString = "46734+0"
 orIndex = 1
 pipeIndex = 1
 orItem = "46734+0"
 commaCount = 0
}
self = <table> {
 QuestBreadcrumbsFor = <function> defined @Interface\AddOns\Grail\Grail.lua:8395
 bitMaskClassPriest = 256
 IsBugged = <function> defined @Interface\AddOns\Grail\Grail.lua:6484
 bitMaskGenderMale = 8192
 _RecordArtifactLevels = <function> defined @Interface\AddOns\Grail\Grail.lua:8970
 bitMaskCompleted = 1
 tooltip = com_mithrandir_grailTooltip {
 }
 QuestLocationsAccept = <function> defined @Interface\AddOns\Grail\Grail.lua:8553
 IsAvailable = <function> defined @Interface\AddOns\Grail\Grail.lua:6466
 NO_SKILL = -1
 _HandleEventGarrisonBuildingActivated = <function> defined @Interface\AddOns\Grail\Grail.lua:6171
 bitMaskClassAll = 268443644
 _HandleEventLootClosed = <function> defined @Interface\AddOns\Grail\Grail.lua:6199
 bitMaskQuestLegendary = 4096
 _RemoveDelayedNotification = <function> defined @Interface\AddOns\Grail\Grail.lua:4651
 reputationFriends = <table> {
 }
 NPC_TYPE_BY = "BY"
 NPC_TYPE_DROP = "DROP"
 _PostDelayedNotification = <function> defined @Interface\AddOns\Grail\Grail.lua:7790
 _MarkQuestType = <function> defined @Interface\AddOns\Grail\Grail.lua:5011
 receivedCalendarUpdateEventList = false
 bitMaskClassDeathKnight = 4
 QuestNPCPrerequisiteTurnins = <function> defined @Interface\AddOns\Grail\Grail.lua:8724
 _ProcessServerBackup = <function> defined @Interface\AddOns\Grail\Grail.lua:8102
 bitMaskQuestVariableLevel = 4278190080
 MeetsRequirementGroup = <function> defined @Interface\AddOns\Grail\Grail.lua:7392
 _EvaluateCodeAsPrerequisite = <function> defined @Interface\AddOns\Grail\Grail.lua:5513
 bitMaskInLog = 16
 bitMaskQuestWeekly = 4
 bitMaskHolidayNoble = 256
 MeetsRequirementProfession = <function> defined @Interface\AddOns\Grail\Grail.lua:7477
 DoesNPCExist = <function> defined @Interface\AddOns\Grail\Grail.lua:5478
 npcNames = <table> {
 }
 _AllEvaluateTrueS = <function> defined @Interface\AddOns\Grail\Grail.lua:3325
 bitMaskQuestFailureWithAncestor = 67043200
 verifyTable = <table> {
 }
 _NPCToUse = <function> defined @Interface\AddOns\Grail\Grail.lua:7655
 garrisonBuildingLevelMapping = <table> {
 }
 bitMaskClassHunter = 16
 _LoadContinentData = <function> defined @Interface\AddOns\Grail\Grail.lua:2883
 bitMaskQuestRaid = 128
 _LocationStructure = <function> defined @Interface\AddOns\Grail\Grail.lua:6998
 _HandleEventAchievementEarned = <function> defined @Interface\AddOns\Grail\Grail.lua:6166
 checksReputationRewardsOnAcceptance = true
 classToMapAreaMapping = <table> {
 }
 verifyTableCount = 0
 playerGenderBitMask = 16384
 _ReputationExceeds = <function> defined @Interface\AddOns\Grail\Grail.lua:9158
 bitMaskRaceUnused9 = 4096
 zonesForLootingTreasure = <table> {
 }
 bitMaskQuestMonthly = 8
 mapAreaBaseClass = 200000
 exists73 = true
 LearnObjectName = <function> defined @Interface\AddOns\Grail\Grail.lua:6940
 _ContainsAliasNPC = <function> defined @Interface\AddOns\Grail\Grail.lua:5232
 classToBitMapping = <table> {
 }
 FriendshipReputationNameAndLevelName = <function> defined @Interface\AddOns\Grail\Grail.lua:9257
 QuestBreadcrumbs = <function> defined @Interface\AddOns\Grail\Grail.lua:8389
 NPCName = <function> defined @Interface\AddOns\Grail\Grail.lua:7610
 experimental = false
 bitMaskRaceNightborne = 2
 mapAreaBaseReputation = 400000
 UnregisterObserverQuestStatus = <function> defined @Interface\AddOns\Grail\Grail.lua:9801
 tooltipNPC = com_mithrandir_grailTooltipNPC {
 }
 QuestOnAcceptCompletes = <function> defined @Interface\AddOns\Grail\Grail.lua:8736
 bitMaskAncestorLevelTooHigh = 33554432
 bitMaskRaceTroll = 16777216
 bitMaskCanGetUnused2 = 65536
 _IntegerFromStringPosition = <function> defined @Interface\AddOns\Grail\Grail.lua:5066
 bitMaskQuestMinLevel = 65280
 bitMaskLevelTooHigh = 32768
 IsGroup = <function> defined @Interface\AddOns\Grail\Grail.l
AddOns:
  BlizRuntimeLib_enUS v8.1.0.80100 <none>
  (ck=b45)
Report comment to moderator  
Reply With Quote
Unread 12-24-18, 07:38 AM  
Nimhfree
A Frostmaul Preserver
AddOn Author - Click to view AddOns

Forum posts: 267
File comments: 51
Uploads: 2
Re: New error - on login - ETA: Second error

Originally Posted by Barleduq
I've removed my list of addons.

Code:
Message: ..\AddOns\Grail\Grail.lua line 4112:
   script ran too long
Code:
Message: ..\AddOns\Grail\Grail.lua line 3013:
   attempt to compare number with nil
I will have to investigate the first error, but the second should be fixed with the version of Grail that is on GitHub (and therefore with the next release of Grail).
Report comment to moderator  
Reply With Quote
Unread 12-23-18, 11:40 PM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
New error - on login - ETA: Second error

I've removed my list of addons.

Code:
Date: 2018-12-24 00:35:29
ID: 2
Error occured in: Global
Count: 1
Message: ..\AddOns\Grail\Grail.lua line 4112:
   script ran too long
Debug:
   Grail\Grail.lua:4112: _CleanLearnedDatabase()
   Grail\Grail.lua:4157: ?()
   Grail\Grail.lua:1418: ?()
   Grail\Grail.lua:9715: _Tooltip_OnEvent()
   Grail\Grail.lua:10275:
      Grail\Grail.lua:10275
Locals:
self = <table> {
 QuestBreadcrumbsFor = <function> defined @Interface\AddOns\Grail\Grail.lua:8357
 bitMaskClassPriest = 256
 IsBugged = <function> defined @Interface\AddOns\Grail\Grail.lua:6446
 bitMaskGenderMale = 8192
 _RecordArtifactLevels = <function> defined @Interface\AddOns\Grail\Grail.lua:8932
 bitMaskCompleted = 1
 tooltip = com_mithrandir_grailTooltip {
 }
 QuestLocationsAccept = <function> defined @Interface\AddOns\Grail\Grail.lua:8515
 IsAvailable = <function> defined @Interface\AddOns\Grail\Grail.lua:6428
 NO_SKILL = -1
 _HandleEventGarrisonBuildingActivated = <function> defined @Interface\AddOns\Grail\Grail.lua:6133
 bitMaskClassAll = 268443644
 _HandleEventLootClosed = <function> defined @Interface\AddOns\Grail\Grail.lua:6161
 bitMaskQuestLegendary = 4096
 _RemoveDelayedNotification = <function> defined @Interface\AddOns\Grail\Grail.lua:4613
 reputationFriends = <table> {
 }
 NPC_TYPE_BY = "BY"
 NPC_TYPE_DROP = "DROP"
 _PostDelayedNotification = <function> defined @Interface\AddOns\Grail\Grail.lua:7752
 _MarkQuestType = <function> defined @Interface\AddOns\Grail\Grail.lua:4973
 receivedCalendarUpdateEventList = false
 bitMaskClassDeathKnight = 4
 QuestNPCPrerequisiteTurnins = <function> defined @Interface\AddOns\Grail\Grail.lua:8686
 _ProcessServerBackup = <function> defined @Interface\AddOns\Grail\Grail.lua:8064
 bitMaskQuestVariableLevel = 4278190080
 MeetsRequirementGroup = <function> defined @Interface\AddOns\Grail\Grail.lua:7354
 _EvaluateCodeAsPrerequisite = <function> defined @Interface\AddOns\Grail\Grail.lua:5475
 bitMaskInLog = 16
 bitMaskQuestWeekly = 4
 bitMaskHolidayNoble = 256
 MeetsRequirementProfession = <function> defined @Interface\AddOns\Grail\Grail.lua:7439
 DoesNPCExist = <function> defined @Interface\AddOns\Grail\Grail.lua:5440
 npcNames = <table> {
 }
 _AllEvaluateTrueS = <function> defined @Interface\AddOns\Grail\Grail.lua:3322
 bitMaskQuestFailureWithAncestor = 67043200
 verifyTable = <table> {
 }
 _NPCToUse = <function> defined @Interface\AddOns\Grail\Grail.lua:7617
 garrisonBuildingLevelMapping = <table> {
 }
 bitMaskClassHunter = 16
 _LoadContinentData = <function> defined @Interface\AddOns\Grail\Grail.lua:2880
 bitMaskQuestRaid = 128
 _LocationStructure = <function> defined @Interface\AddOns\Grail\Grail.lua:6960
 _HandleEventAchievementEarned = <function> defined @Interface\AddOns\Grail\Grail.lua:6128
 checksReputationRewardsOnAcceptance = true
 classToMapAreaMapping = <table> {
 }
 verifyTableCount = 0
 playerGenderBitMask = 16384
 _ReputationExceeds = <function> defined @Interface\AddOns\Grail\Grail.lua:9120
 bitMaskRaceUnused9 = 4096
 zonesForLootingTreasure = <table> {
 }
 bitMaskQuestMonthly = 8
 mapAreaBaseClass = 200000
 exists73 = true
 LearnObjectName = <function> defined @Interface\AddOns\Grail\Grail.lua:6902
 _ContainsAliasNPC = <function> defined @Interface\AddOns\Grail\Grail.lua:5194
 classToBitMapping = <table> {
 }
 FriendshipReputationNameAndLevelName = <function> defined @Interface\AddOns\Grail\Grail.lua:9219
 QuestBreadcrumbs = <function> defined @Interface\AddOns\Grail\Grail.lua:8351
 NPCName = <function> defined @Interface\AddOns\Grail\Grail.lua:7572
 experimental = false
 bitMaskRaceNightborne = 2
 mapAreaBaseReputation = 400000
 UnregisterObserverQuestStatus = <function> defined @Interface\AddOns\Grail\Grail.lua:9763
 tooltipNPC = com_mithrandir_grailTooltipNPC {
 }
 QuestOnAcceptCompletes = <function> defined @Interface\AddOns\Grail\Grail.lua:8698
 bitMaskAncestorLevelTooHigh = 33554432
 bitMaskRaceTroll = 16777216
 bitMaskCanGetUnused2 = 65536
 _IntegerFromStringPosition = <function> defined @Interface\AddOns\Grail\Grail.lua:5028
 bitMaskQuestMinLevel = 65280
 bitMaskLevelTooHigh = 32768
 IsGroup = <function> defined @Interface\AddOns\Grail\Grail.lua:6480
 bitMaskCanGetUnused8 = 4194304
 bitMaskCanGetUnused15 = 1073741824
 MeetsRequirementGroupPossibleToComplete = <function> defined @Interface\AddOns\Grail\Grail.lua:7382
 questReputations = <table> {
 }
 versionNumber = 98
 _ProcessQuestsForHandlers = <function> defined @Interface\AddOns\Grail\Grail.lua:
AddOns:
  BlizRuntimeLib_enUS v8.1.0.80100 <none>
  (ck=cc1)
Just found another error in the stack, including it:

Code:
Date: 2018-12-24 00:36:06
ID: 4
Error occured in: Global
Count: 1
Message: ..\AddOns\Grail\Grail.lua line 3013:
   attempt to compare number with nil
Debug:
   [C]: ?
   Grail\Grail.lua:3013: _AddWorldQuestsUpdateTimes()
   Grail\Grail.lua:3132:
      Grail\Grail.lua:3132
Locals:

AddOns:
  (ck=1785)
Last edited by Barleduq : 12-24-18 at 12:18 AM.
Report comment to moderator  
Reply With Quote
Unread 08-09-18, 11:07 AM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
Error on zoning in to Darkmoon Faire

This is the second toon I've taken to the faire today. Didn't see this on the first one, and I've completely logged out to the desktop and back in since then. o.O

Code:
Date: 2018-08-09 13:05:39
ID: 14
Error occured in: Global
Count: 1
Message: ..\AddOns\Grail\Grail.lua line 5801:
   Usage: local continentID, worldPosition = C_Map.GetWorldPosFromMapPos(uiMapID, mapPosition)
Debug:
   [C]: ?
   [C]: GetWorldPosFromMapPos()
   Grail\Grail.lua:5801: GetPlayerMapPosition()
   Wholly\Wholly.lua:2576: _OnUpdate()
   Wholly\Wholly.lua:3966:
      Wholly\Wholly.lua:3966
Locals:

AddOns:
  BlizRuntimeLib_enUS v8.0.1.80000 <none>
  (ck=161b)
Report comment to moderator  
Reply With Quote
Unread 07-22-18, 01:33 PM  
Nimhfree
A Frostmaul Preserver
AddOn Author - Click to view AddOns

Forum posts: 267
File comments: 51
Uploads: 2
Re: Doesn't seem to be working with 8.0.1 grail and wholly

Originally Posted by SEACRESTSLAYER
ever since pre patch both add ons seem to be borked
The latest versions of Wholly and Grail are available from the GitHub repository and should give back most functionality. *This will be the best location to get things working until the next public release is made.
Report comment to moderator  
Reply With Quote
Unread 07-19-18, 06:05 AM  
SEACRESTSLAYER
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Doesn't seem to be working with 8.0.1 grail and wholly

ever since pre patch both add ons seem to be borked
Report comment to moderator  
Reply With Quote
Unread 06-17-17, 06:05 PM  
Nimhfree
A Frostmaul Preserver
AddOn Author - Click to view AddOns

Forum posts: 267
File comments: 51
Uploads: 2
Re: Wow, no errors in 2 years!

Originally Posted by Barleduq
Pity I have a report.

No bugs that swatter found, but I got this in my chat box on my first login after the patch hit.

This is a clip of the text: http://imgur.com/uAck3dQ
Interesting. This message appears from processing the "QUEST_ACCEPTED" event. The first number is the questId that is passed in that event. The second is the questId as reported by the Blizzard API for the specific quest index in the quest log (as indicated by the event). Something is not behaving as expected, so I will have to investigate.
Report comment to moderator  
Reply With Quote
Unread 06-16-17, 08:23 PM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
Wow, no errors in 2 years!

Pity I have a report.

No bugs that swatter found, but I got this in my chat box on my first login after the patch hit.

This is a clip of the text: http://imgur.com/uAck3dQ
Report comment to moderator  
Reply With Quote
Unread 02-09-15, 09:43 PM  
Nimhfree
A Frostmaul Preserver
AddOn Author - Click to view AddOns

Forum posts: 267
File comments: 51
Uploads: 2
Originally Posted by Barleduq
Originally Posted by Nimhfree
Yes, a Grail thing. And the data has already been updated in one of the prereleases of Grail. I just checked the data, and if it is not in the current PR2, it will be in the next one that comes out.
Awesome. If I find things in the future, would you rather I report here, or in some other fashion? I believe, at one point, we were in email contact, I can find that again if you prefer, or private message here.
Any method is ok. The email is [email protected] if you want.
Report comment to moderator  
Reply With Quote
Unread 02-09-15, 08:57 PM  
Barleduq
Premium Member
 
Barleduq's Avatar
Premium Member

Forum posts: 135
File comments: 742
Uploads: 0
Originally Posted by Nimhfree
Yes, a Grail thing. And the data has already been updated in one of the prereleases of Grail. I just checked the data, and if it is not in the current PR2, it will be in the next one that comes out.
Awesome. If I find things in the future, would you rather I report here, or in some other fashion? I believe, at one point, we were in email contact, I can find that again if you prefer, or private message here.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: