Major Change
Mod name change because there apparently is a mod called Ravalox' Quest Tracker that had a file named LibQuestInfo.lua included with it as an embedded library.
LibQuestData
While updating Quest Map and trying to use some of the same data with other mods that show quest information I realized it was too much work to update more then one mod. For that reason I created LibQuestData.
It contains all of the currently available (by user submission) data from Quest Map and some information from Destinations. The data is incomplete and I would appreciate user submissions.
Current Features:
- Provide mod authors with X,Y locations for placing a pin on the Map (LIBGPS Data not collected at this time use local_x , local_y only! Needs more time for data to be collected.)
- Built in data collection for quest information not currently in data base
At the bottom of the page is a list of Zones that have had their quest data verified.
Required
LibGPS - LibGPS
NOTE LibGPS Requires: LibMapPing, LibDebugLogger, LibChatMessage so be sure to
read the authors description page.
LibMapPins - LibMapPins
Using LibQuestData with your addon: Include this line in your
addon manifest:
Code:
## DependsOn: LibQuestData
Reference to the library using:
Lua Code:
lib:get_quest_giver(id, lang)
-- returns: Quest Giver Name; type string
Important: This mod is brand new and I have not had time to update X, Y coordinates with user data for LibGPS. Use local_x, local_y.
As of 4/5/2021 you should no longer use lib.get_quest_list(zone)
Instead use lib.zone_quests
|
Code:
local LQD = LibQuestData
local zoneQuests = {}
local function UpdatePins()
<< verify you should be updating pins >>
zoneQuests = LQD.zone_quests
RefreshTourMapPins()
end
Use the function UpdatePins anywhere you need deepening on player interaction with the world such as events for when the map changes, or the player changes location.
Lua Code:
lib:get_quest_list(zone)
-- returns: all quest X, Y coordinates and Quest ID; table
lib.quest_map_pin_index = {
local_x = 1, -- GetMapPlayerPosition() << -10 = Undefined >>
local_y = 2, -- GetMapPlayerPosition() << -10 = Undefined >>
global_x = 3, -- LocalToGlobal(GetMapPlayerPosition()) << -10 = Undefined >>
global_y = 4, -- LocalToGlobal(GetMapPlayerPosition()) << -10 = Undefined >>
quest_id = 5, -- Number index of quest name i.e. 6404 for "The Dragonguard" << -1 = Undefined >>
-- world_x = 6, Depreciated, WorldX 3D Location << -10 = Undefined >>
-- world_y = 7, Depreciated, WorldY 3D Location << -10 = Undefined >>
-- world_z = 8, Depreciated, WorldZ 3D Location << -10 = Undefined >>
-- quest_giver = 9, Updated, was 9 now 6
quest_giver = 6, -- Arbitrary number pointing to an NPC Name 81004, "Abnur Tharn" << -1 = Undefined >>
}
Lua Code:
lib:get_quest_name(id, lang)
-- returns: Quest Name; type string
Lua Code:
lib:get_questids_table(name, lang)
-- returns: Quest IDs; type table
-- {6404, }
-- {5079, 5749, },
NOTE: Multiple ID numbers means there are multiple quests with the same name.
Use: Drawing a pin with a different color if the player has started the
quest and has not finished it yet. Loop over the table.
Example:
Lua Code:
ids = lib:get_questids_table(name, lang)
for _, id in ipairs(ids) do
started_quests[id] = true
end
Lua Code:
lib:build_questid_table(lang)
-- specialized use: builds a table of Quest IDs with the index being the
-- Quest Name. LibQuestData uses this to return a table of quest IDs using
-- the quest name lib:get_questids_table(id, lang).
-- LibQuestData only initializes the client language. If additional lookup
-- tables are needed for other languages, call this during your mods
-- initialization phase.
Planed features for Version 2
1:
Lua Code:
-- return additional quest data
lib.quest_data_index = {
quest_name = 1, -- Number index of quest name i.e. 6404 for "The Dragonguard"
quest_type = 2, -- MAIN_STORY, DUNGEON
quest_repeat = 3, -- quest_repeat_daily, quest_repeat_not_repeatable = 0, quest_repeat_repeatable
game_api = 4, -- 100003 means unverified, 100030 or 100030 means quest data collected from API 100030 or higher
quest_line = 5, -- QuestLine (10000 = not assigned/not verified. 10001 = not part of a quest line/verified)
quest_number = 6, -- Quest Number In QuestLine (10000 = not assigned/not verified)
quest_series = 7, -- None = 0, Cadwell's Almanac = 1, Undaunted = 2, AD = 3, DC = 4, EP = 5.
}
2:
Expand built in data collection to update information instead of only collecting new information. Meaning that if there are multiple pins for a quest, duplicate pins close to the player location would be removed in favor of the new location. The auto update would also compare information like quest name, quest giver, quest type, whether or not it is repeatable, and the Game API. Game's API version will mean the quest is still available in the current version.
3:
For avid data collectors and experts a slash command to remove ALL pins on the map prior to accepting a quest in order to clean up duplicate pins. Data would be submitted on GitHub.
GitHub Repo:
LibQuestData
Zone Quests Verified
Khenarthis Roost
Contributions
Polish localization provided by
Skrybowie Tamriel (Tamriel scribes)
10 Hours of compatibility testing with over 272 different mods from 2 users
First I would like to thank vecny.samotar and Pyrelle for the zip files of their Addons folders so I could do this testing.
Mods List:
link to mods list
Today I tested over 272 different mods trying to create errors when viewing the world map with Quest Map and other mods installed. It took about 10 hours to really go through all of them thoroughly.
Mods from the list you should not install
TreasureMaps - Link provided so there is no confusion with other mods.
HarvestMerge
The above two mods will cause significant errors. HarvestMerge is one of my mods and if I update it for HarvestMap then it would be safe to use it.
Mods from the list that had errors and could not be tested
SorcererHelper - But I was on my Warden at the time
AdvancedMemberTooltip
MultiQuestTrackerRE
pNames - May be old, my have been from embedded libraries, might duplicate functionality from another mod
Mods from the same author
Some mods by the same author may not necessarily work together. For example the mods starting with Notebook from the above list may work together but you will need to be sure you only install versions from the author that he specifies will work together.
For some of Harvens mods in that list they did not cause a conflict with Quest Map or drawing pins. If you load more then one of Harvens mods test them thoroughly and make sure they do not duplicate functionality. They all seem to work fine but using a bunch of them should be expected to have a possible conflict. If you feel the conflict should not occur then contact the author.
Troubleshooting
The environment I chose was one where I installed LibStub and I only used ESOUI mods downloaded with Minion. I did not modify the files in any way. Normally for mods I personally use I have removed LibStub requirements and I do not load LibStub. Since users can not do that I used the versions of mods currently online. All mods were the most current version available.
To start with I enabled Quest Map and Ravalox' Quest Tracker along with their dependencies. There was no error. I did this because it was discovered today that Ravalox' mod had a file named LibQuestInfo.lua with the same library name. This forced me to change the name of my mod to LibQuestData.
From there I just enabled one or two mods at a time and then the libraries as needed. This is the typical way you should test your mods. If you disable libraries like LibMapPins for example, then any mod that requires that will not load. That does not help you narrow down what is causing the issue.
If you do happen to find a conflict then you need to think, is this expected? Out of those 272 mods in the list you notice there were several UI overhauls and MiniMap mods that were bound to cause conflicts. Naturally I had only certain combinations of mods active at various times. However, toward the end I had Bandits UI and Fyrakin's Minimap active to test that possibility.
Should you find a conflict and there is no reasonable explanation then contact the author of the other mod. Meaning not the author of Quest Map or LibQuestData but rather the author of the mod that is conflicting. The author is doing something they shouldn't and their mod needs to be updated.
Overall Findings
Even with various mods installed, from a list of 272 possible mods, there were no errors opening the map and viewing the map pins for Quest Map. I was able to use the map filters for both Destinations and Quest Map to show and hide pins with any of the mods listed in the link to pastebin.
I am sorry if you are experiencing errors but I have been more then thorough you need to reinstall your mods, update your mods, or disable mods until you no longer experience the errors.
Can I post an error if I have one?
Yes feel free to post errors. If I feel I should look at it I will. If it is an error from something similar to what has already been shared then no I will ask you to read this section and do your own troubleshooting.
Pics of my UI at various times during testing
Nobody would ever load over 230 mods at a time. If you do then you are asking for issues and should not be reporting errors. I provide these for posterity. I only redacted some of the guild chat so my guild members are not angry.
