3.0.3, with all files, autoaccept

git [04-09-18 - 17:28]
3.0.3, with all files, autoaccept
Filename
DailyAutoShare/DASMenu.lua
DailyAutoShare/DailyAutoShare.txt
DailyAutoShare/DasChatMessage.lua
DailyAutoShare/DasQuestAccept.lua
DailyAutoShare/locale/de.lua
DailyAutoShare/locale/en.lua
DailyAutoShare/locale/fr.lua
DailyAutoShare/locale/jp.lua
DailyAutoShare/locale/ru.lua
DailyAutoShare/questData/ClockworkCity.lua
DailyAutoShare/questData/GoldCoast.lua
DailyAutoShare/questData/Morrowind.lua
DailyAutoShare/questData/Wrothgar.lua
DailyAutoShare/startup.lua
diff --git a/DailyAutoShare/DASMenu.lua b/DailyAutoShare/DASMenu.lua
index 11f5e72..5179eb5 100644
--- a/DailyAutoShare/DASMenu.lua
+++ b/DailyAutoShare/DASMenu.lua
@@ -1,4 +1,5 @@
 local DAS = DailyAutoShare
+local questShareDefault = "I can give a DailyAutoShare for <<1>>, type <<3>> for an instant invite"

 function DAS.CreateMenu(savedVars, defaults)

@@ -54,7 +55,7 @@ function DAS.CreateMenu(savedVars, defaults)
 			getFunc = function() return not DAS.GetSpeakStupid() end,
 			setFunc = function(value) DAS.SetSpeakStupid(not value) end
 		},
-
+

 		{ -- header: activate add-on in...
 			type    = "submenu",
@@ -285,7 +286,22 @@ function DAS.CreateMenu(savedVars, defaults)
 			type        = "submenu",
 			name        = "Look and feel and behavior",
 			controls    = {
-
+				{   -- editbox: Quest share text
+                    type    = "editbox",
+                    name    = "Quest share text",
+                    tooltip = ("Text to generate when you spam quest shares.\n"
+                                .. "<<1>> will be replaced with the quest names, <<2>> with the bingo codes.\n"
+                                .. "Omit either to remove parameter. Include neither and sound like a fool."),
+                    getFunc = function() return DAS.GetSettings().questShareString end,
+                    setFunc = function(value) DAS.GetSettings().questShareString = value end,
+                },
+				{   -- editbox: Quest share text
+                    type    = "button",
+                    name    = "Reset",
+                    tooltip = "Reset quest share text to default value",
+                    getFunc = function() return questShareDefault end,
+                    setFunc = function(value) DAS.GetSettings().questShareString = questShareDefault end,
+                },
 				{ -- checkbox: Lock UI window
 					type    = "checkbox",
 					name    = "Lock UI window",
diff --git a/DailyAutoShare/DailyAutoShare.txt b/DailyAutoShare/DailyAutoShare.txt
index cfe43ac..9dedd78 100644
--- a/DailyAutoShare/DailyAutoShare.txt
+++ b/DailyAutoShare/DailyAutoShare.txt
@@ -1,6 +1,6 @@
 ## Title: DailyAutoShare
 ## Author: manavortex
-## Version: 3.0.2
+## Version: 3.0.3
 ## APIVersion: 100022
 ## SavedVariables: DAS_Settings DAS_Globals
 ## OptionalDependsOn: LibStub LibAddonMenu-2.0 LibMediaProvider-1.0
diff --git a/DailyAutoShare/DasChatMessage.lua b/DailyAutoShare/DasChatMessage.lua
new file mode 100644
index 0000000..7ab726a
--- /dev/null
+++ b/DailyAutoShare/DasChatMessage.lua
@@ -0,0 +1,79 @@
+
+local task 						= LibStub("LibAsync"):Create("DailyAutoshare")
+local task2 					= LibStub("LibAsync"):Create("DailyAutoshare_OnGroupMessage")
+local messageQueue              = {}
+local partyQueue                = {}
+DAS.messageQueue                = messageQueue
+local unittagplayer             = 'player'
+local cachedDisplayName         = GetUnitDisplayName(unittagplayer)
+local share                     = "share"
+local stopsharing               = "stop sharing"
+
+local function HandleGroupMessage()
+
+    if #partyQueue == 0 then return end
+    local _, messageText = pcall(table.remove, partyQueue, #partyQueue)
+    if not messageText then return end
+    local _, found
+    _, found = pcall(string.find, messageText, share)
+    if 	found then return DAS.TryShareActiveDaily() end
+     _, found = pcall(string.find, messageText, stopsharing)
+    if found then return DAS.SetAutoShare(false) end
+
+end
+
+local channelTypes = DAS.channelTypes
+local function HandleChatMessage()
+
+    if not DAS.autoInviting then return end
+
+    if #messageQueue == 0 then return end
+
+    local _, tbl = pcall(table.remove, messageQueue, #messageQueue)
+    if not tbl then return end
+    local messageText, fromDisplayName = tbl[1], tbl[2]
+
+    local _, bingoCode = pcall(string.match, messageText, "%+%s?(%S+)")
+    if not DAS.fullBingoString or not bingoCode then return end
+
+    -- d(zo_strformat("[HandleChatMessage] <<1>>: <<2>>", fromDisplayName, bingoCode))
+
+    local _, found = pcall(string.find, DAS.fullBingoString, bingoCode)
+    if not found then return end
+
+    GroupInviteByName(fromDisplayName)
+end
+
+function DAS.OnChatMessage(eventCode, channelType, fromName, messageText, _, fromDisplayName)
+    local isPlayerName
+
+    -- react to the group asking for shares
+    if (channelType == CHAT_CHANNEL_PARTY) then
+        table.insert(partyQueue, messageText)
+        return task2:Call(HandleGroupMessage)
+    elseif channelType == CHAT_CHANNEL_ZONE then
+        local isPlayerName = fromDisplayName:find(cachedDisplayName)
+        if isPlayerName and channelTypes[channelType] then return end
+    end
+
+    if not (isPlayerName or channelTypes[channelType]) then return end
+
+    -- d(zo_strformat("[OnChatMessage] <<1>>: <<2>>", fromDisplayName, messageText))
+    local status, result = pcall(string.find, messageText, "%+")
+    if not result then return end
+
+    if isPlayerName then
+        if IsUnitGrouped('player') then
+            if DAS.GetGroupLeaveOnNewSearch() then GroupLeave() end
+        else
+            DAS.TryTriggerAutoAcceptInvite()
+        end
+        return
+    end
+
+    -- we don't have quests to share
+    if not DAS.autoInviting or #DAS.fullBingoString == 0 then return end
+
+    table.insert(messageQueue, {[1] = zo_strformat(messageText), [2] = fromDisplayName})
+    task:Call(HandleChatMessage)
+end
\ No newline at end of file
diff --git a/DailyAutoShare/DasQuestAccept.lua b/DailyAutoShare/DasQuestAccept.lua
new file mode 100644
index 0000000..bccd380
--- /dev/null
+++ b/DailyAutoShare/DasQuestAccept.lua
@@ -0,0 +1,95 @@
+local chattering, wasQuestAccepted = false, false
+local optionString, optionCount, wasQuestAccepted
+
+local questStarter, questFinisher
+local unitInteract = "interact"
+
+function DAS.cacheChatterData()
+    local zoneId = DAS.GetZoneId()
+    questStarter = DAS.questStarter[zoneId] or {}
+    questFinisher = DAS.questFinisher[zoneId] or {}
+end
+
+local function HandleQuestAccepted()
+    -- Accept the quest
+    wasQuestAccepted = true
+    EVENT_MANAGER:UnregisterForEvent("DAS_Chatter", EVENT_QUEST_OFFERED)
+    EVENT_MANAGER:UnregisterForEvent("DAS_Chatter", EVENT_QUEST_ACCEPTED)
+    EndInteraction(INTERACTION_CONVERSATION)
+    wasQuestAccepted = nil
+end
+
+-- Handles the dialogue where we actually accept the quest
+local function HandleEventQuestOffered(eventCode)
+    -- Stop listening for quest offering
+    EVENT_MANAGER:RegisterForEvent("DAS_Chatter", EVENT_QUEST_ADDED, HandleQuestAccepted)
+    AcceptOfferedQuest()
+end
+
+-- Handles the dialogue where we actually complete the quest
+local function HandleQuestCompleteDialog(eventCode, journalIndex)
+	if not GetJournalQuestIsComplete(journalIndex) then return end
+	CompleteQuest()
+    EVENT_MANAGER:UnregisterForEvent("DAS_Chatter", EVENT_QUEST_COMPLETE_DIALOG)
+	CompleteQuest()
+end
+
+local function HandleChatterBegin(eventCode, optionCount)
+
+    wasQuestAccepted = nil
+	if not DAS.GetSettings().autoAcceptQuest or not DAS.GetActiveIn() then return end
+    -- Ignore interactions with no options
+    if not optionCount then
+        _, optionCount = GetChatterData()
+    end
+    if optionCount == 0 then return end
+    local npcName = GetUnitName(unitInteract)
+    for i = 1, optionCount do
+
+        -- Get details of option
+	    optionString, optionType = GetChatterOption(i)
+
+        -- If it is a daily quest option...
+	    if optionType == CHATTER_START_NEW_QUEST_BESTOWAL and questStarter[npcName] then
+
+			EVENT_MANAGER:RegisterForEvent("DAS_Chatter", EVENT_QUEST_OFFERED, HandleEventQuestOffered)
+           if not wasQuestAccepted then
+				-- Listen for the quest offering - Select the first option
+				SelectChatterOption(i)
+				return
+			else
+				if i == optionCount and wasQuestAccepted then
+					EndInteraction(INTERACTION_CONVERSATION)
+					wasQuestAccepted = nil
+				end
+			end
+	    -- If it is a writ quest completion option
+	    elseif optionType == CHATTER_START_ADVANCE_COMPLETABLE_QUEST_CONDITIONS and questFinisher[npcName] then
+
+
+	        -- Listen for the quest complete dialog
+	        EVENT_MANAGER:RegisterForEvent("DAS_Chatter", EVENT_QUEST_COMPLETE_DIALOG, HandleQuestCompleteDialog)
+
+	        -- Select the first option to complete the quest
+	        SelectChatterOption(1)
+
+	    -- If the goods were already placed, then complete the quest
+	    elseif optionType == CHATTER_START_COMPLETE_QUEST and questFinisher[npcName] then
+
+	        -- Listen for the quest complete dialog
+	        EVENT_MANAGER:RegisterForEvent("DAS_Chatter", EVENT_QUEST_COMPLETE_DIALOG, HandleQuestCompleteDialog)
+	        -- Select the first option to place goods and/or sign the manifest
+	        SelectChatterOption(1)
+
+	        -- Select the first option to complete the quest
+	        SelectChatterOption(1)
+        end
+    end
+    chattering = false
+end
+
+local function HandleChatterEnd()
+     chattering = false
+end
+EVENT_MANAGER:RegisterForEvent("DAS", EVENT_CHATTER_BEGIN, HandleChatterBegin)
+EVENT_MANAGER:RegisterForEvent("DAS", EVENT_CHATTER_END, HandleChatterEnd)
\ No newline at end of file
diff --git a/DailyAutoShare/locale/de.lua b/DailyAutoShare/locale/de.lua
index 2ecea78..7f80b2e 100644
--- a/DailyAutoShare/locale/de.lua
+++ b/DailyAutoShare/locale/de.lua
@@ -40,9 +40,6 @@ local strings  = {
 	DAS_CLOCK_CAVE_START     = "What's the job?",
 	DAS_CLOCK_CROW_START     = "How can I help?",

-	DAS_CLOCK_IMP_TURNIN     = "IMPLEMENT_ME",
-	DAS_CLOCK_FOE_TURNIN	 = "IMPLEMENT_ME",
-
 	DAS_CLOCK_CRAFT_CLOTH	 = "Lose Fasern",
 	DAS_CLOCK_CRAFT_WATER	 = "Eine klebrige Lösung",
 	DAS_CLOCK_CRAFT_RUNE	 = "Verzauberte Ansammlung",
@@ -50,13 +47,6 @@ local strings  = {
 	DAS_CLOCK_CRAFT_ALCH	 = "Eine bittere Pille",
 	DAS_CLOCK_CRAFT_WOOD	 = "Brennstoff für unsere Feuer",

-	DAS_CLOCK_CRAFT_CLOTH_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_WATER_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_RUNE_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_SMITH_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_ALCH_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_WOOD_TURNIN	 = "IMPLEMENT_ME",
-
 	DAS_CLOCK_DELVE_FILT	 = "Filterwechsel",
 	DAS_CLOCK_DELVE_FANS	 = "Die Ventilatoren ölen",
 	DAS_CLOCK_DELVE_COMM	 = "Gleichrichterersatz",
@@ -64,13 +54,6 @@ local strings  = {
 	DAS_CLOCK_DELVE_MISP	 = "Ein verlegter Schatten",
 	DAS_CLOCK_DELVE_AGAI	 = "Zurück in die Schatten",

-	DAS_CLOCK_DELVE_FILT_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_FANS_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_COMM_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MALF_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MISP_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_AGAI_TURNIN	 = "IMPLEMENT_ME",
-
 	DAS_CLOCK_CROW_GLIT		 = "Glitzern und Funkeln",
 	DAS_CLOCK_CROW_TRIB		 = "Eine Frage des Tributs",
 	DAS_CLOCK_CROW_NIBB		 = "Stückchen und Häppchen",
@@ -78,23 +61,6 @@ local strings  = {
 	DAS_CLOCK_CROW_RESP		 = "Eine Frage des Respekts",
 	DAS_CLOCK_CROW_LEIS		 = "A Matter of Leisure",

-	DAS_CLOCK_CROW_GLIT_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_TRIB_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_NIBB_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_MORS_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_RESP_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_LEIS_TURNIN = "IMPLEMENT_ME",
-
-    DAS_M_BOSS_START = "Is there a job available?",
-    DAS_M_DELVE_START = "I'd like to help with any work you have available.",
-    DAS_M_HUNT_START = "I'm interested in a hunt.",
-    DAS_M_RELIC_START = "What kind of help do you need?",
-
-    DAS_M_BOSS_TURNIN = "I've done what you requested.",
-    DAS_M_DELVE_TURNIN = "I'd like to help with any work you have available.",
-    DAS_M_HUNT_TURNIN = "Here's a trophy from my kill.",
-    DAS_M_RELIC_TURNIN = "Here are the relics I recovered.",
-
 	-- Morrowind dailies
 	DAS_M_REL_ASHAL =  "Relikte von Ashalmawia",
 	DAS_M_REL_ASSAR =  "Relikte von Assarnatamat",
@@ -120,15 +86,6 @@ local strings  = {
 	DAS_M_DELVE_TRIBA =  "Stammessorgen",
 	DAS_M_DELVE_SYNDI =  "Ein Syndikat in Unruhe",

-    -- Cave dailies (Hall of Justice) turn-in
-	DAS_M_DELVE_DAEDR_TURNIN =  "I was able to stop the Daedra summoning rituals.",
-	DAS_M_DELVE_KWAMA_TURNIN =  "I planted the misleading notes.",
-	DAS_M_DELVE_MISIN_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TAXES_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TRIBA_TURNIN =  "I have the items you asked for.",
-	DAS_M_DELVE_SYNDI_TURNIN =  "IMPLEMENT_ME",
-
-
 	-- World boss dailies (Hall of Justice)
 	DAS_M_BOSS_WUYWU        =  "Ein schleichender Hunger",
 	DAS_M_BOSS_SWARM        =  "Das Ausdünnen des Schwarms",
@@ -137,15 +94,6 @@ local strings  = {
 	DAS_M_BOSS_SIREN        =  "Sirenensang",
 	DAS_M_BOSS_APPRE        =  "Der besorgte Lehrling",

-
-	DAS_M_BOSS_WUYWU_TURNIN =  "I dealt with the Hunger.",
-    DAS_M_BOSS_SWARM_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_NILTH_TURNIN =  "I took care of the nix-ox and have the mushroom samples.",
-    DAS_M_BOSS_SALOT_TURNIN =  "No, I'm here to tell you that the Salothan ghosts have been laid to rest.",
-    DAS_M_BOSS_SIREN_TURNIN =  "I defeated the Nereid and recovered these goods.",
-    DAS_M_BOSS_APPRE_TURNIN =  "IMPLEMENT_ME",
-
-

 	-- wrothgar dailies
     DAS_W_POACHERS        = "Fleisch für die Massen",
@@ -154,43 +102,6 @@ local strings  = {
     DAS_W_CORI            = "Die Gabe der Natur",
     DAS_W_DOLMEN       	  = "Der Frevel des Unwissens",
     DAS_W_OGRE            = "Gelehrtes Bergungsgut",
-
-    DAS_W_POA_TURNIN        = "I retrieved the meat and got rid of the poachers.",
-    DAS_W_EDU_TURNIN        = "The Riekr chieftain is dead, and I've rescued a few of your lost travelers.",
-    DAS_W_NYZ_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_CORI_TURNIN       = "The corruption is cleansed and Corintthac is dead.",
-    DAS_W_DOLMEN_TURNIN     = "Yes, I disrupted the obelisks and destroyed Zandadunoz the Reborn.",
-    DAS_W_OGRE_TURNIN       = "Here's your book. And Mad Urkazbur is dead.",
-
-    DAS_W_HARPIES_TURNIN    = "I've got your eggs right here. The hagraven is dead as well.",
-    DAS_W_SPIRITS_TURNIN    = "The spirits are free and Gorlar the Dark has been defeated.",
-    DAS_W_DURZOGS_TURNIN    = "Here are some more pelts, and I killed the pack leader.",
-    DAS_W_DWEMER_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_WEREWOLVES_TURNIN = "IMPLEMENT_ME",
-    DAS_W_THAT_OTHER_TURNIN = "IMPLEMENT_ME",
-
-    DAS_W_BOSS_START        = "I'm here to work. What do you have for me?",
-    DAS_W_DELVE_START       = "What do you have for me?",
-
-
-    -- need to be translated to make the auto accept work
-    DAS_W_POA_TURNIN        = "I retrieved the meat and got rid of the poachers.",
-    DAS_W_EDU_TURNIN        = "The Riekr chieftain is dead, and I've rescued a few of your lost travelers.",
-    DAS_W_NYZ_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_CORI_TURNIN       = "IMPLEMENT_ME",
-    DAS_W_DOLMEN_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_OGRE_TURNIN       = "Here's your book. And Mad Urkazbur is dead.",
-
-    DAS_W_HARPIES_TURNIN    = "I've got your eggs right here. The hagraven is dead as well.",
-    DAS_W_SPIRITS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DURZOGS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DWEMER_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_WEREWOLVES_TURNIN = "IMPLEMENT_ME",
-    DAS_W_THAT_OTHER_TURNIN = "IMPLEMENT_ME",
-
-    DAS_W_BOSS_START        = "I'm here to work. What do you have for me?",
-    DAS_W_DELVE_START       = "What do you have for me?",
-

 	-- wrothgar single
 	DAS_W_HARPIES 		    = "Ein bizarres Frühstück",
@@ -206,13 +117,7 @@ local strings  = {
 	DAS_DB_ARENA 		    = "Das Jubeln der Menge",
 	DAS_DB_GOOD 		    = "Das Gemeinwohl",
 	DAS_DB_EVIL 		    = "Das Übel unter der Erde",
-
-	DAS_DB_QUEST_START       = "",
-	DAS_DB_ARENA_TURNIN     = "",
-	DAS_DB_MINO_TURNIN      = "",
-	DAS_DB_GOOD_TURNIN      = "",
-	DAS_DB_EVIL_TURNIN      = "",
-
+
 	-- new life
 	DAS_NL_STORMHAVEN	    = "Burgbardenherausforderung",
 	DAS_NL_STONEFALLS	    = "Lavafußstampfer",
@@ -224,7 +129,6 @@ local strings  = {
 	DAS_NL_AURIDON		    = "Schlammballspiele",
 	DAS_NL_EASTMARCH	    = "Schneebärensprung",

-
 	-- craglorn
 	-- lower
 	DAS_CRAG_SARA 		 = "Kritische Masse",
@@ -245,6 +149,26 @@ local strings  = {
 	DAS_CRAG_DUNGEON 	 = "Entfesselt",


+    DAS_QUEST_M_ASHLANDER   = "Huntmaster Sorim-Nakar",
+
+    DAS_QUEST_CC_ROBOT      = "Clockwork Facilitator",
+    DAS_QUEST_CC_CROW       = "Bursar of Tributes",
+    DAS_QUEST_CC_NOVICE     = "Novice Holli",
+    DAS_QUEST_CC_THISTLE    = "Leaps-Over-Thistle",
+    DAS_QUEST_CC_DARO       = "Adjunct Daro",
+    DAS_QUEST_CC_TILELLE    = "Intiate Tilelle",
+
+    DAS_QUEST_W_OUFA        = "Sergeant Oufa",
+    DAS_QUEST_W_USHANG      = "Ushang the Untamed",
+
+    DAS_QUEST_W_BIRKHU      = "Birkhu the Bold",
+
+    DAS_QUEST_DB_ARVINA     = "Cleric Arvina",
+
+    DAS_QUEST_DB_BOUNTY     = "Bounty Board",
+
+
+
 }
 DAS_STRINGS_LOCALE.de = strings

diff --git a/DailyAutoShare/locale/en.lua b/DailyAutoShare/locale/en.lua
index e7cd3ab..a9a43e0 100644
--- a/DailyAutoShare/locale/en.lua
+++ b/DailyAutoShare/locale/en.lua
@@ -27,15 +27,8 @@ local strings  = {

 	-- Clockwork City
 	DAS_CLOCK_IMP			 = "Inciting the Imperfect",
-	DAS_CLOCK_FOE			 = "A Fine-Feathered Foe",
-
-	DAS_CLOCK_IMP_TURNIN     = "I've completed the contract.",
-
-    -- Clockwork City
-	DAS_CLOCK_BOSS_START	 = "I'll take on a contract.",
-	DAS_CLOCK_CRAFT_START    = "Got any work?",
-	DAS_CLOCK_CAVE_START     = "What's the job?",
-	DAS_CLOCK_CROW_START     = "How can I help?",
+	DAS_CLOCK_FOE			 = "A Fine-Feathered Foe",
+

 	DAS_CLOCK_CRAFT_CLOTH	 = "Loose Strands",
 	DAS_CLOCK_CRAFT_WATER	 = "A Sticky Solution",
@@ -44,27 +37,12 @@ local strings  = {
 	DAS_CLOCK_CRAFT_ALCH	 = "A Bitter Pill",
 	DAS_CLOCK_CRAFT_WOOD	 = "Fuel for our Fires",

-	DAS_CLOCK_CRAFT_CLOTH_TURNIN = "I have the metallic fibers.", -- guessed
-	DAS_CLOCK_CRAFT_WATER_TURNIN = "I have the  fabricated husk.", -- guessed
-	DAS_CLOCK_CRAFT_RUNE_TURNIN	 = "I have the runestones.", -- guessed
-	DAS_CLOCK_CRAFT_SMITH_TURNIN = "I have the flash stone.", -- guessed
-	DAS_CLOCK_CRAFT_ALCH_TURNIN	 = "I have the herbalist's satchels.",
-	DAS_CLOCK_CRAFT_WOOD_TURNIN	 = "I have the synthetic oils.",
-
-
 	DAS_CLOCK_DELVE_FILT	 = "Changing the Filters",
 	DAS_CLOCK_DELVE_FANS	 = "Oiling the Fans",
 	DAS_CLOCK_DELVE_COMM	 = "Replacing the Commutators",
 	DAS_CLOCK_DELVE_MALF	 = "A Shadow Malfunction",
 	DAS_CLOCK_DELVE_MISP	 = "A Shadow Misplaced",
-	DAS_CLOCK_DELVE_AGAI	 = "Again Into the Shadows",
-
-	DAS_CLOCK_DELVE_FILT_TURNIN	 = "I was able to change the filters.",  -- guessed
-	DAS_CLOCK_DELVE_FANS_TURNIN	 = "I was able to oil the fans.", -- guessed
-	DAS_CLOCK_DELVE_COMM_TURNIN	 = "I was able to replace the commutators.",
-	DAS_CLOCK_DELVE_MALF_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MISP_TURNIN	 = "And here are Oscard's research notes.",
-	DAS_CLOCK_DELVE_AGAI_TURNIN	 = "IMPLEMENT_ME",
+	DAS_CLOCK_DELVE_AGAI	 = "Again Into the Shadows",

 	DAS_CLOCK_CROW_GLIT		 = "Glitter and Gleam",
 	DAS_CLOCK_CROW_TRIB		 = "A Matter of Tributes",
@@ -73,55 +51,31 @@ local strings  = {
 	DAS_CLOCK_CROW_RESP		 = "A Matter of Respect",
 	DAS_CLOCK_CROW_LEIS		 = "A Matter of Leisure",

-	DAS_CLOCK_CROW_GLIT_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_TRIB_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_NIBB_TURNIN = "Here are the items you requested.",
-	DAS_CLOCK_CROW_MORS_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_RESP_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_LEIS_TURNIN = "IMPLEMENT_ME",
-
 	-- Morrowind dailies
-	DAS_M_REL_ASHAL =  "Relics of Ashalmawia",
-	DAS_M_REL_ASSAR =  "Relics of Assarnatamat",
-	DAS_M_REL_ASHUR =  "Relics of Ashurnabitashpi",
-	DAS_M_REL_DUSHA =  "Relics of Dushariran",
-	DAS_M_REL_EBERN =  "Relics of Ebernanit",
-	DAS_M_REL_MAELK =  "Relics of Maelkashishi",
-	DAS_M_REL_YASAM =  "Relics of Yasammidan",
+	DAS_M_REL_ASHAL          =  "Relics of Ashalmawia",
+	DAS_M_REL_ASSAR          =  "Relics of Assarnatamat",
+	DAS_M_REL_ASHUR          =  "Relics of Ashurnabitashpi",
+	DAS_M_REL_DUSHA          =  "Relics of Dushariran",
+	DAS_M_REL_EBERN          =  "Relics of Ebernanit",
+	DAS_M_REL_MAELK          =  "Relics of Maelkashishi",
+	DAS_M_REL_YASAM          =  "Relics of Yasammidan",

-	DAS_M_HUNT_EATER =  "Ash-Eater Hunt",
-	DAS_M_HUNT_ZEXXI =  "Great Zexxin Hunt",
-	DAS_M_HUNT_RAZOR =  "King Razor-Tusk Hunt",
-	DAS_M_HUNT_JAGGE =  "Mother Jagged-Claw Hunt",
-	DAS_M_HUNT_STOMP =  "Old Stomper Hunt",
-	DAS_M_HUNT_TARRA =  "Tarra-Suj Hunt",
-	DAS_M_HUNT_SVEET =  "Writhing Sveeth Hunt",
-
-    DAS_M_BOSS_START = "Is there a job available?",
-    DAS_M_DELVE_START = "I'd like to help with any work you have available.",
-    DAS_M_HUNT_START = "I'm interested in a hunt.",
-    DAS_M_RELIC_START = "What kind of help do you need?",
-
-    DAS_M_BOSS_TURNIN = "I've done what you requested.",
-    DAS_M_DELVE_TURNIN = "I'd like to help with any work you have available.",
-    DAS_M_HUNT_TURNIN = "Here's a trophy from my kill.",
-    DAS_M_RELIC_TURNIN = "Here are the relics I recovered.",
+	DAS_M_HUNT_EATER         =  "Ash-Eater Hunt",
+	DAS_M_HUNT_ZEXXI         =  "Great Zexxin Hunt",
+	DAS_M_HUNT_RAZOR         =  "King Razor-Tusk Hunt",
+	DAS_M_HUNT_JAGGE         =  "Mother Jagged-Claw Hunt",
+	DAS_M_HUNT_STOMP         =  "Old Stomper Hunt",
+	DAS_M_HUNT_TARRA         =  "Tarra-Suj Hunt",
+	DAS_M_HUNT_SVEET         =  "Writhing Sveeth Hunt",

 	-- World boss dailies (Hall of Justice)
-	DAS_M_BOSS_WUYWU =  "A Creeping Hunger",
-	DAS_M_BOSS_SWARM =  "Culling the Swarm",
-	DAS_M_BOSS_NILTH =  "Oxen Free",
-	DAS_M_BOSS_SALOT =  "Salothan's Curse",
-	DAS_M_BOSS_SIREN =  "Siren's Song",
-	DAS_M_BOSS_APPRE =  "The Anxious Apprentice",
+	DAS_M_BOSS_WUYWU         =  "A Creeping Hunger",
+	DAS_M_BOSS_SWARM         =  "Culling the Swarm",
+	DAS_M_BOSS_NILTH         =  "Oxen Free",
+	DAS_M_BOSS_SALOT         =  "Salothan's Curse",
+	DAS_M_BOSS_SIREN         =  "Siren's Song",
+	DAS_M_BOSS_APPRE         =  "The Anxious Apprentice",

-	DAS_M_BOSS_WUYWU_TURNIN =  "I dealt with the Hunger.",
-    DAS_M_BOSS_SWARM_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_NILTH_TURNIN =  "I took care of the nix-ox and have the mushroom samples.",
-    DAS_M_BOSS_SALOT_TURNIN =  "No, I'm here to tell you that the Salothan ghosts have been laid to rest.",
-    DAS_M_BOSS_SIREN_TURNIN =  "I defeated the Nereid and recovered these goods.",
-    DAS_M_BOSS_APPRE_TURNIN =  "IMPLEMENT_ME",
-
 	-- Cave dailies (Hall of Justice)
 	DAS_M_DELVE_DAEDR        =  "Daedric Disruptions",
 	DAS_M_DELVE_KWAMA        =  "Kwama Conundrum",
@@ -130,16 +84,6 @@ local strings  = {
 	DAS_M_DELVE_TRIBA        =  "Tribal Troubles",
 	DAS_M_DELVE_SYNDI        =  "Unsettled Syndicate",

-    -- Cave dailies (Hall of Justice) turn-in
-	DAS_M_DELVE_DAEDR_TURNIN =  "I was able to stop the Daedra summoning rituals.",
-	DAS_M_DELVE_KWAMA_TURNIN =  "I planted the misleading notes.",
-	DAS_M_DELVE_MISIN_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TAXES_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TRIBA_TURNIN =  "I have the items you asked for.",
-	DAS_M_DELVE_SYNDI_TURNIN =  "IMPLEMENT_ME",
-
-
-
 	-- wrothgar dailies
     DAS_W_POACHERS          = "Meat for the Masses",
     DAS_W_EDU               = "Reeking of Foul Play",
@@ -147,24 +91,7 @@ local strings  = {
     DAS_W_CORI              = "Nature's Bounty",
     DAS_W_DOLMEN            = "Heresy of Ignorance",
     DAS_W_OGRE              = "Scholarly Salvage",
-
-    DAS_W_POA_TURNIN        = "I retrieved the meat and got rid of the poachers.",
-    DAS_W_EDU_TURNIN        = "The Riekr chieftain is dead, and I've rescued a few of your lost travelers.",
-    DAS_W_NYZ_TURNIN        = "Yes, I defeated Nyzchaleft.",
-    DAS_W_CORI_TURNIN       = "The corruption is cleansed and Corintthac is dead.",
-    DAS_W_DOLMEN_TURNIN     = "Yes, I disrupted the obelisks and destroyed Zandadunoz the Reborn.",
-    DAS_W_OGRE_TURNIN       = "Here's your book. And Mad Urkazbur is dead.",
-
-    DAS_W_HARPIES_TURNIN    = "I've got your eggs right here. The hagraven is dead as well.",
-    DAS_W_SPIRITS_TURNIN    = "The spirits are free and Gorlar the Dark has been defeated.",
-    DAS_W_DURZOGS_TURNIN    = "Here are some more pelts, and I killed the pack leader.",
-    DAS_W_DWEMER_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_WEREWOLVES_TURNIN = "IMPLEMENT_ME",
-    DAS_W_THAT_OTHER_TURNIN = "IMPLEMENT_ME",
-
-    DAS_W_BOSS_START        = "I'm here to work. What do you have for me?",
-    DAS_W_DELVE_START       = "What do you have for me?",
-
+
 	-- wrothgar single
 	DAS_W_HARPIES 		    = "Breakfast of the Bizarre",
 	DAS_W_SPIRITS 		    = "Free Spirits",
@@ -179,13 +106,7 @@ local strings  = {
 	DAS_DB_ARENA 		    = "The Roar of the Crowds",
 	DAS_DB_GOOD 		    = "The Common Good",
 	DAS_DB_EVIL 		    = "Buried Evil",
-
-	DAS_DB_QUEST_START      = "<Read the bounty board.>",
-	DAS_DB_ARENA_TURNIN     = "I'm here to claim my reward.",
-	DAS_DB_MINO_TURNIN      = "The site has been cleared and I recovered your relics.",
-	DAS_DB_GOOD_TURNIN      = "I destroyed Exulus and retrieved the pauldrons of your fallen comrades.",
-	DAS_DB_EVIL_TURNIN      = "",
-
+
 	-- new life
 	DAS_NL_STORMHAVEN	    = "Castle Charm Challenge",
 	DAS_NL_STONEFALLS	    = "Lava Foot Stomp",
@@ -215,6 +136,66 @@ local strings  = {
 	DAS_CRAG_KIDNAP 	    = "Taken Alive",
 	DAS_CRAG_HITMAN 	    = "The Truer Fangs",
 	DAS_CRAG_DUNGEON 	    = "Uncaged",
+
+
+    DAS_QUEST_M_ASHLANDER   = "Huntmaster Sorim-Nakar",
+
+    DAS_QUEST_CC_ROBOT      = "Clockwork Facilitator",
+    DAS_QUEST_CC_CROW       = "Bursar of Tributes",
+    DAS_QUEST_CC_NOVICE     = "Novice Holli",
+    DAS_QUEST_CC_THISTLE    = "Leaps-Over-Thistle",
+    DAS_QUEST_CC_DARO       = "Adjunct Daro",
+    DAS_QUEST_CC_TILELLE    = "Intiate Tilelle",
+
+    DAS_QUEST_W_OUFA        = "Sergeant Oufa",
+    DAS_QUEST_W_USHANG      = "Ushang the Untamed",
+
+    DAS_QUEST_W_BIRKHU      = "Birkhu the Bold",
+
+    DAS_QUEST_DB_ARVINA     = "Cleric Arvina",
+
+    DAS_QUEST_DB_BOUNTY     = "Bounty Board",
+
+
+    -- don't need translation for anyone but the russians - I think
+
+    DAS_QUEST_DB_LARONEN    = "Laronen",
+    DAS_QUEST_DB_FINIA      = "Finia Sele",
+    DAS_QUEST_DB_CODUS      = "Codus ap Dugal",
+
+    DAS_QUEST_W_NEDNOR      = "Nednor",
+    DAS_QUEST_W_THAZEK      = "Thazeg",
+    DAS_QUEST_W_ARUSHNA     = "Arushna",
+    DAS_QUEST_W_LILYAMEH    = "Lilyameh",
+    DAS_QUEST_W_BAGRUBESH   = "Bagrugbesh",
+    DAS_QUEST_W_CIRANTILLE  = "Cirantille",
+    DAS_QUEST_W_MENNINIA    = "Menninia",
+    DAS_QUEST_W_SONOLIA     = "Sonolia Muspidius",
+    DAS_QUEST_W_RAYNOR      = "Raynor Vanos", -- maybe not include Raynor?
+
+    DAS_QUEST_M_TRAYLAN     = "Traylan Omoril",
+    DAS_QUEST_M_BELERU      = "Beleru Omoril",
+    DAS_QUEST_M_NUMANI      = "Numani-Rasi",
+    DAS_QUEST_M_NARA        = "Nara Varam",
+    DAS_QUEST_M_TIRVINA     = "Tirvina Avani",
+    DAS_QUEST_M_DINOR       = "Dinor Salvi",
+    DAS_QUEST_M_BRAVOSI     = "Bravosi Felder",
+    DAS_QUEST_M_IVULEN      = "Ivulen Andromo",
+    DAS_QUEST_M_SAVILE      = "Savile Alam",
+    DAS_QUEST_M_KYLIA       = "Kylia Thando",
+    DAS_QUEST_M_EVOS        = "Evos Hledas",
+    DAS_QUEST_M_ALVES       = "Alves Droth",
+    DAS_QUEST_M_DREDASE     = "Dredase-Hlarar",
+    DAS_QUEST_M_VORAR       = "Vorar Vendu",
+
+    DAS_QUEST_CC_ORC        = "Razgurug",
+    DAS_QUEST_CC_COOK       = "Aveberl Tremouille",
+    DAS_QUEST_CC_MINDORA    = "Mindora",
+    DAS_QUEST_CC_NJORD      = "Njordemar",
+    DAS_QUEST_CC_IGMUND     = "Igmund",
+
+    DAS_QUEST_W_GURUZUG     = "Guruzug",
+    DAS_QUEST_W_ARZORAG     = "Arzorag",

 }
 DailyAutoShare.EnglishQuestNames = strings
diff --git a/DailyAutoShare/locale/fr.lua b/DailyAutoShare/locale/fr.lua
index f61c4c0..7111e93 100644
--- a/DailyAutoShare/locale/fr.lua
+++ b/DailyAutoShare/locale/fr.lua
@@ -29,16 +29,6 @@ local strings  = {
 	DAS_CLOCK_IMP			= "Attirer l'Imparfait",
 	DAS_CLOCK_FOE			= "Un si beau plumage",

-	DAS_CLOCK_IMP_TURNIN     = "IMPLEMENT_ME",
-	DAS_CLOCK_FOE_TURNIN	 = "IMPLEMENT_ME",
-
-    -- Clockwork City
-	DAS_CLOCK_BOSS_START	 = "I'll take on a contract.",
-	DAS_CLOCK_CRAFT_START    = "Got any work?",
-	DAS_CLOCK_CAVE_START     = "What's the job?",
-	DAS_CLOCK_CROW_START     = "How can I help?",
-
-
 	DAS_CLOCK_CRAFT_CLOTH	= "Détails à régler",
 	DAS_CLOCK_CRAFT_WATER	= "La poisse",
 	DAS_CLOCK_CRAFT_RUNE	= "Accumulation enchantée",
@@ -46,28 +36,13 @@ local strings  = {
 	DAS_CLOCK_CRAFT_ALCH	= "Pilule amère",
 	DAS_CLOCK_CRAFT_WOOD	= "Ce qui alimente nos feux",

-
-	DAS_CLOCK_CRAFT_CLOTH_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_WATER_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_RUNE_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_SMITH_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_ALCH_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_WOOD_TURNIN	 = "IMPLEMENT_ME",
-
 	DAS_CLOCK_DELVE_FILT	= "Changer les filtres",
 	DAS_CLOCK_DELVE_FANS	= "Graisser les ventilateurs",
 	DAS_CLOCK_DELVE_COMM	= "Remplacer les commutateurs",
 	DAS_CLOCK_DELVE_MALF	= "Une avarie d'ombre",
 	DAS_CLOCK_DELVE_MISP	= "Une ombre égarée",
 	DAS_CLOCK_DELVE_AGAI	= "Retour dans les ombres vertes",
-
-	DAS_CLOCK_DELVE_FILT_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_FANS_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_COMM_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MALF_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MISP_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_AGAI_TURNIN	 = "IMPLEMENT_ME",
-
+
 	DAS_CLOCK_CROW_GLIT		= "Lueur et Chatoiement",
 	DAS_CLOCK_CROW_TRIB		= "Une affaire de tributs",
 	DAS_CLOCK_CROW_NIBB		= "Petites bouchées",
@@ -75,14 +50,6 @@ local strings  = {
 	DAS_CLOCK_CROW_RESP		= "Une histoire de respect",
 	DAS_CLOCK_CROW_LEIS		 = "A Matter of Leisure",

-	DAS_CLOCK_CROW_GLIT_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_TRIB_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_NIBB_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_MORS_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_RESP_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_LEIS_TURNIN = "IMPLEMENT_ME",
-
-
 	-- Morrowind dailies
 	DAS_M_REL_ASHAL 		= "Reliques d'Ashalmawia",
 	DAS_M_REL_ASSAR 		= "Reliques d'Assarnatamat",
@@ -108,22 +75,6 @@ local strings  = {
 	DAS_M_DELVE_TRIBA 		= "Tribus troublées",
 	DAS_M_DELVE_SYNDI 		= "Mouvement syndical",

-    -- Cave dailies (Hall of Justice) turn-in
-	DAS_M_DELVE_DAEDR_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_KWAMA_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_MISIN_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TAXES_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TRIBA_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_SYNDI_TURNIN =  "IMPLEMENT_ME",
-
-    -- Cave dailies (Hall of Justice) turn-in
-	DAS_M_DELVE_DAEDR_TURNIN =  "I was able to stop the Daedra summoning rituals.",
-	DAS_M_DELVE_KWAMA_TURNIN =  "I planted the misleading notes.",
-	DAS_M_DELVE_MISIN_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TAXES_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TRIBA_TURNIN =  "I have the items you asked for.",
-	DAS_M_DELVE_SYNDI_TURNIN =  "IMPLEMENT_ME",
-
 	-- World boss dailies (Hall of Justice)
 	DAS_M_BOSS_WUYWU 		= "Une faim dévorante",
 	DAS_M_BOSS_SWARM 		= "Réduire le troupeau",
@@ -132,20 +83,6 @@ local strings  = {
 	DAS_M_BOSS_SIREN 		= "Chant de la sirène",
 	DAS_M_BOSS_APPRE 		= "L'Apprenti anxieux",

-	DAS_M_BOSS_WUYWU_TURNIN =  "I dealt with the Hunger.",
-    DAS_M_BOSS_SWARM_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_NILTH_TURNIN =  "I took care of the nix-ox and have the mushroom samples.",
-    DAS_M_BOSS_SALOT_TURNIN =  "No, I'm here to tell you that the Salothan ghosts have been laid to rest.",
-    DAS_M_BOSS_SIREN_TURNIN =  "I defeated the Nereid and recovered these goods.",
-    DAS_M_BOSS_APPRE_TURNIN =  "IMPLEMENT_ME",
-
-	DAS_M_BOSS_WUYWU_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_SWARM_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_NILTH_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_SALOT_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_SIREN_TURNIN =  "IMPLEMENT_ME",
-    DAS_M_BOSS_APPRE_TURNIN =  "IMPLEMENT_ME",
-
 	-- wrothgar dailies
     DAS_W_POACHERS      	= "Nourrir les foules",
     DAS_W_EDU          		= "L'odeur du crime",
@@ -154,24 +91,6 @@ local strings  = {
     DAS_W_DOLMEN       		= "Hérésie par l'ignorance",
     DAS_W_OGRE           	= "Sauvetage académique",

-
-    DAS_W_POA_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_EDU_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_NYZ_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_CORI_TURNIN       = "IMPLEMENT_ME",
-    DAS_W_DOLMEN_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_OGRE_TURNIN       = "IMPLEMENT_ME",
-
-    DAS_W_HARPIES_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_SPIRITS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DURZOGS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DWEMER_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_WEREWOLVES_TURNIN = "IMPLEMENT_ME",
-    DAS_W_THAT_OTHER_TURNIN = "IMPLEMENT_ME",
-
-    DAS_W_BOSS_START        = "I'm here to work. What do you have for me?",
-    DAS_W_DELVE_START       = "What do you have for me?",
-
 	-- wrothgar single
 	DAS_W_HARPIES 			= "Petit-déjeuner de l'étrange",
 	DAS_W_SPIRITS 			= "Esprits libres",
@@ -185,13 +104,7 @@ local strings  = {
 	DAS_DB_ARENA 			= "Le hurlement des foules",
 	DAS_DB_EVIL 			= "Mal enfoui",
 	DAS_DB_GOOD 			= "Le bien commun",
-
-	DAS_DB_QUEST_START      = "",
-	DAS_DB_ARENA_TURNIN     = "",
-	DAS_DB_MINO_TURNIN      = "",
-	DAS_DB_GOOD_TURNIN      = "",
-	DAS_DB_EVIL_TURNIN      = "",
-
+
 	-- new life
 	DAS_NL_STORMHAVEN		= "Castle Charm Challenge",
 	DAS_NL_STONEFALLS		= "Lava Foot Stomp",
@@ -202,7 +115,7 @@ local strings  = {
 	DAS_NL_BETNIKH			= "Stonetooth Bash",
 	DAS_NL_AURIDON			= "Mud Ball Merriment",
 	DAS_NL_EASTMARCH		= "Snow Bear Plunge",
-
+

 	-- craglorn
 	-- lower
@@ -222,6 +135,26 @@ local strings  = {
 	DAS_CRAG_KIDNAP 		 = "Capturés vivants",
 	DAS_CRAG_HITMAN 		 = "Les crocs ajustés",
 	DAS_CRAG_DUNGEON 		 = "Libéré",
+
+
+
+    DAS_QUEST_M_ASHLANDER   = "Huntmaster Sorim-Nakar",
+
+    DAS_QUEST_CC_ROBOT      = "Clockwork Facilitator",
+    DAS_QUEST_CC_CROW       = "Bursar of Tributes",
+    DAS_QUEST_CC_NOVICE     = "Novice Holli",
+    DAS_QUEST_CC_THISTLE    = "Leaps-Over-Thistle",
+    DAS_QUEST_CC_DARO       = "Adjunct Daro",
+    DAS_QUEST_CC_TILELLE    = "Intiate Tilelle",
+
+    DAS_QUEST_W_OUFA        = "Sergeant Oufa",
+    DAS_QUEST_W_USHANG      = "Ushang the Untamed",
+
+    DAS_QUEST_W_BIRKHU      = "Birkhu the Bold",
+
+    DAS_QUEST_DB_ARVINA     = "Cleric Arvina",
+
+    DAS_QUEST_DB_BOUNTY     = "Bounty Board",


 }
diff --git a/DailyAutoShare/locale/jp.lua b/DailyAutoShare/locale/jp.lua
index 44ce654..526e620 100644
--- a/DailyAutoShare/locale/jp.lua
+++ b/DailyAutoShare/locale/jp.lua
@@ -29,16 +29,6 @@ local strings  = {
 	DAS_CLOCK_IMP			 = "Inciting the Imperfect",
 	DAS_CLOCK_FOE			 = "A Fine-Feathered Foe",

-	DAS_CLOCK_IMP_TURNIN     = "IMPLEMENT_ME",
-	DAS_CLOCK_FOE_TURNIN	 = "IMPLEMENT_ME",
-
-    -- Clockwork City
-	DAS_CLOCK_BOSS_START	 = "I'll take on a contract.",
-	DAS_CLOCK_CRAFT_START    = "Got any work?",
-	DAS_CLOCK_CAVE_START     = "What's the job?",
-	DAS_CLOCK_CROW_START     = "How can I help?",
-
-
 	DAS_CLOCK_CRAFT_CLOTH	 = "Loose Strands",
 	DAS_CLOCK_CRAFT_WATER	 = "A Sticky Solution",
 	DAS_CLOCK_CRAFT_RUNE	 = "Enchanted Accumulation",
@@ -46,28 +36,13 @@ local strings  = {
 	DAS_CLOCK_CRAFT_ALCH	 = "A Bitter Pill",
 	DAS_CLOCK_CRAFT_WOOD	 = "Fuel for our Fires",

-	DAS_CLOCK_CRAFT_CLOTH_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_WATER_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_RUNE_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_SMITH_TURNIN = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_ALCH_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_CRAFT_WOOD_TURNIN	 = "IMPLEMENT_ME",
-
 	DAS_CLOCK_DELVE_FILT	 = "Changing the Filters",
 	DAS_CLOCK_DELVE_FANS	 = "Oiling the Fans",
 	DAS_CLOCK_DELVE_COMM	 = "Replacing the Commutators",
 	DAS_CLOCK_DELVE_MALF	 = "A Shadow Malfunction",
 	DAS_CLOCK_DELVE_MISP	 = "A Shadow Misplaced",
 	DAS_CLOCK_DELVE_AGAI	 = "Again Into the Shadows",
-
-	DAS_CLOCK_DELVE_FILT_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_FANS_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_COMM_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MALF_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_MISP_TURNIN	 = "IMPLEMENT_ME",
-	DAS_CLOCK_DELVE_AGAI_TURNIN	 = "IMPLEMENT_ME",
-
-
+
 	DAS_CLOCK_CROW_GLIT		 = "Glitter and Gleam",
 	DAS_CLOCK_CROW_TRIB		 = "A Matter of Tributes",
 	DAS_CLOCK_CROW_NIBB		 = "Nibbles and Bits",
@@ -75,15 +50,7 @@ local strings  = {
 	DAS_CLOCK_CROW_RESP		 = "A Matter of Respect",
 	DAS_CLOCK_CROW_LEIS		 = "A Matter of Leisure",

-
-	DAS_CLOCK_CROW_GLIT_TURNIN		 = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_TRIB_TURNIN		 = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_NIBB_TURNIN		 = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_MORS_TURNIN		 = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_RESP_TURNIN		 = "IMPLEMENT_ME",
-	DAS_CLOCK_CROW_LEIS_TURNIN		 = "IMPLEMENT_ME",
-
-
+
 	-- Morrowind dailies
 	DAS_M_REL_ASHAL =  "Relics of Ashalmawia",
 	DAS_M_REL_ASSAR =  "Relics of Assarnatamat",
@@ -109,14 +76,6 @@ local strings  = {
 	DAS_M_DELVE_TRIBA =  "Tribal Troubles",
 	DAS_M_DELVE_SYNDI =  "Unsettled Syndicate",

-    -- Cave dailies (Hall of Justice) turn-in
-	DAS_M_DELVE_DAEDR_TURNIN =  "I was able to stop the Daedra summoning rituals.",
-	DAS_M_DELVE_KWAMA_TURNIN =  "I planted the misleading notes.",
-	DAS_M_DELVE_MISIN_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TAXES_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TRIBA_TURNIN =  "I have the items you asked for.",
-	DAS_M_DELVE_SYNDI_TURNIN =  "IMPLEMENT_ME",
-
 	-- World boss dailies (Hall of Justice)
 	DAS_M_BOSS_WUYWU =  "A Creeping Hunger",
 	DAS_M_BOSS_SWARM =  "Culling the Swarm",
@@ -125,7 +84,6 @@ local strings  = {
 	DAS_M_BOSS_SIREN =  "Siren's Song",
 	DAS_M_BOSS_APPRE =  "The Anxious Apprentice",

-
 	-- wrothgar dailies
     DAS_W_POACHERS        = "Meat for the Masses",
     DAS_W_EDU             = "Reeking of Foul Play",
@@ -133,22 +91,6 @@ local strings  = {
     DAS_W_CORI            = "Nature's Bounty",
     DAS_W_DOLMEN          = "Heresy of Ignorance",
     DAS_W_OGRE            = "Scholarly Salvage",
-
-
-
-    DAS_W_POA_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_EDU_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_NYZ_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_CORI_TURNIN       = "IMPLEMENT_ME",
-    DAS_W_DOLMEN_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_OGRE_TURNIN       = "IMPLEMENT_ME",
-
-    DAS_W_HARPIES_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_SPIRITS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DURZOGS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DWEMER_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_WEREWOLVES_TURNIN = "IMPLEMENT_ME",
-    DAS_W_THAT_OTHER_TURNIN = "IMPLEMENT_ME",

     DAS_W_BOSS_START        = "I'm here to work. What do you have for me?",
     DAS_W_DELVE_START       = "What do you have for me?",
@@ -159,8 +101,7 @@ local strings  = {
 	DAS_W_DURZOGS 		 = "Getting a Bellyful",
 	DAS_W_DWEMER 		 = "Parts of the Whole",
 	DAS_W_WEREWOLVES	 = "The Skin Trade",
-	DAS_W_THAT_OTHER	 = "Fire in the Hold",
-
+	DAS_W_THAT_OTHER	 = "Fire in the Hold",


 	-- gold coast
@@ -169,13 +110,6 @@ local strings  = {
 	DAS_DB_GOOD 		 = "Common Good",
 	DAS_DB_EVIL 		 = "Buried Evil",

-	DAS_DB_QUEST_START      = "",
-	DAS_DB_ARENA_TURNIN     = "",
-	DAS_DB_MINO_TURNIN      = "",
-	DAS_DB_GOOD_TURNIN      = "",
-	DAS_DB_EVIL_TURNIN      = "",
-
-

 	-- new life
 	DAS_NL_STORMHAVEN	 = "Castle Charm Challenge",
@@ -207,6 +141,28 @@ local strings  = {
 	DAS_CRAG_KIDNAP 	 = "Taken Alive",
 	DAS_CRAG_HITMAN 	 = "The Truer Fangs",
 	DAS_CRAG_DUNGEON 	 = "Uncaged",
+
+
+
+    DAS_QUEST_M_ASHLANDER   = "Huntmaster Sorim-Nakar",
+
+    DAS_QUEST_CC_ROBOT      = "Clockwork Facilitator",
+    DAS_QUEST_CC_CROW       = "Bursar of Tributes",
+    DAS_QUEST_CC_NOVICE     = "Novice Holli",
+    DAS_QUEST_CC_THISTLE    = "Leaps-Over-Thistle",
+    DAS_QUEST_CC_DARO       = "Adjunct Daro",
+    DAS_QUEST_CC_TILELLE    = "Intiate Tilelle",
+
+    DAS_QUEST_W_OUFA        = "Sergeant Oufa",
+    DAS_QUEST_W_USHANG      = "Ushang the Untamed",
+
+    DAS_QUEST_W_BIRKHU      = "Birkhu the Bold",
+
+    DAS_QUEST_DB_ARVINA     = "Cleric Arvina",
+
+    DAS_QUEST_DB_BOUNTY     = "Bounty Board",
+
+

 }
 DAS_STRINGS_LOCALE.jp = strings
diff --git a/DailyAutoShare/locale/ru.lua b/DailyAutoShare/locale/ru.lua
index 7e5e9f1..d151b77 100644
--- a/DailyAutoShare/locale/ru.lua
+++ b/DailyAutoShare/locale/ru.lua
@@ -29,15 +29,6 @@ local strings  = {
 	DAS_CLOCK_IMP			 = "Пробуждение Несовершенства",
 	DAS_CLOCK_FOE			 = "Враг в прекрасном оперении",

-    -- Clockwork City
-	DAS_CLOCK_BOSS_START	 = "I'll take on a contract.",
-	DAS_CLOCK_CRAFT_START    = "Got any work?",
-	DAS_CLOCK_CAVE_START     = "What's the job?",
-	DAS_CLOCK_CROW_START     = "How can I help?",
-
-	DAS_CLOCK_IMP_TURNIN     = "IMPLEMENT_ME",
-	DAS_CLOCK_FOE_TURNIN	 = "IMPLEMENT_ME",
-
 	DAS_CLOCK_CRAFT_CLOTH	 = "Свободные нити",
 	DAS_CLOCK_CRAFT_WATER	 = "Липкое решение",
 	DAS_CLOCK_CRAFT_RUNE	 = "Сбор зачарований",
@@ -85,13 +76,6 @@ local strings  = {
 	DAS_M_DELVE_TRIBA =  "Проблемы племени",
 	DAS_M_DELVE_SYNDI =  "Беспокойный синдикат",

-    -- Cave dailies (Hall of Justice) turn-in
-	DAS_M_DELVE_DAEDR_TURNIN =  "I was able to stop the Daedra summoning rituals.",
-	DAS_M_DELVE_KWAMA_TURNIN =  "I planted the misleading notes.",
-	DAS_M_DELVE_MISIN_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TAXES_TURNIN =  "IMPLEMENT_ME",
-	DAS_M_DELVE_TRIBA_TURNIN =  "I have the items you asked for.",
-	DAS_M_DELVE_SYNDI_TURNIN =  "IMPLEMENT_ME",

 	-- World boss dailies (Hall of Justice)
 	DAS_M_BOSS_WUYWU =  "Затаившийся алчущий",
@@ -109,24 +93,6 @@ local strings  = {
     DAS_W_CORI            = "Щедрость природы",
     DAS_W_DOLMEN          = "Ересь невежества",
     DAS_W_OGRE            = "Спасение во имя знаний",
-
-
-    DAS_W_POA_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_EDU_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_NYZ_TURNIN        = "IMPLEMENT_ME",
-    DAS_W_CORI_TURNIN       = "IMPLEMENT_ME",
-    DAS_W_DOLMEN_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_OGRE_TURNIN       = "IMPLEMENT_ME",
-
-    DAS_W_HARPIES_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_SPIRITS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DURZOGS_TURNIN    = "IMPLEMENT_ME",
-    DAS_W_DWEMER_TURNIN     = "IMPLEMENT_ME",
-    DAS_W_WEREWOLVES_TURNIN = "IMPLEMENT_ME",
-    DAS_W_THAT_OTHER_TURNIN = "IMPLEMENT_ME",
-
-    DAS_W_BOSS_START        = "I'm here to work. What do you have for me?",
-    DAS_W_DELVE_START       = "What do you have for me?",

 	-- wrothgar single
 	DAS_W_HARPIES 		 = "Завтрак чудака",
@@ -143,13 +109,6 @@ local strings  = {
 	DAS_DB_ARENA 		 = "Рев толпы",
 	DAS_DB_GOOD 		 = "Всеобщее благо",
 	DAS_DB_EVIL 		 = "Захороненное зло",
-
-	DAS_DB_QUEST_START      = "",
-	DAS_DB_ARENA_TURNIN     = "",
-	DAS_DB_MINO_TURNIN      = "",
-	DAS_DB_GOOD_TURNIN      = "",
-	DAS_DB_EVIL_TURNIN      = "",
-

 	-- new life
 	DAS_NL_STORMHAVEN	 = "Замковое состязание очарования",
@@ -161,8 +120,7 @@ local strings  = {
 	DAS_NL_BETNIKH		 = "Удар Каменного зуба",
 	DAS_NL_AURIDON		 = "Развлечение с комками грязи",
 	DAS_NL_EASTMARCH	 = "Ныряние снежного медведя",
-
-
+
 	-- craglorn
 	-- lower
 	DAS_CRAG_SARA 		 = "Критическая масса",
@@ -181,6 +139,74 @@ local strings  = {
 	DAS_CRAG_KIDNAP 	 = "Живые пленники",
 	DAS_CRAG_HITMAN 	 = "Настоящие клыки",
 	DAS_CRAG_DUNGEON 	 = "Освобожденные",
+
+
+
+    -- Questgiver names --
+
+
+
+    DAS_QUEST_M_ASHLANDER   = "Huntmaster Sorim-Nakar",
+
+    DAS_QUEST_CC_ROBOT      = "Clockwork Facilitator",
+    DAS_QUEST_CC_CROW       = "Bursar of Tributes",
+    DAS_QUEST_CC_NOVICE     = "Novice Holli",
+    DAS_QUEST_CC_THISTLE    = "Leaps-Over-Thistle",
+    DAS_QUEST_CC_DARO       = "Adjunct Daro",
+    DAS_QUEST_CC_TILELLE    = "Intiate Tilelle",
+
+    DAS_QUEST_W_OUFA        = "Sergeant Oufa",
+    DAS_QUEST_W_USHANG      = "Ushang the Untamed",
+
+    DAS_QUEST_W_BIRKHU      = "Birkhu the Bold",
+
+    DAS_QUEST_DB_ARVINA     = "Cleric Arvina",
+
+    DAS_QUEST_DB_BOUNTY     = "Bounty Board",
+
+
+    -- don't need translation for anyone but the russians - I think
+
+    DAS_QUEST_DB_LARONEN    = "Laronen",
+    DAS_QUEST_DB_FINIA      = "Finia Sele",
+    DAS_QUEST_DB_CODUS      = "Codus ap Dugal",
+
+    DAS_QUEST_W_NEDNOR      = "Nednor",
+    DAS_QUEST_W_THAZEK      = "Thazeg",
+    DAS_QUEST_W_ARUSHNA     = "Arushna",
+    DAS_QUEST_W_LILYAMEH    = "Lilyameh",
+    DAS_QUEST_W_BAGRUBESH   = "Bagrugbesh",
+    DAS_QUEST_W_CIRANTILLE  = "Cirantille",
+    DAS_QUEST_W_MENNINIA    = "Menninia",
+    DAS_QUEST_W_SONOLIA     = "Sonolia Muspidius",
+    DAS_QUEST_W_RAYNOR      = "Raynor Vanos", -- maybe not include Raynor?
+
+    DAS_QUEST_M_TRAYLAN     = "Traylan Omoril",
+    DAS_QUEST_M_BELERU      = "Beleru Omoril",
+    DAS_QUEST_M_NUMANI      = "Numani-Rasi",
+    DAS_QUEST_M_NARA        = "Nara Varam",
+    DAS_QUEST_M_TIRVINA     = "Tirvina Avani",
+    DAS_QUEST_M_DINOR       = "Dinor Salvi",
+    DAS_QUEST_M_BRAVOSI     = "Bravosi Felder",
+    DAS_QUEST_M_IVULEN      = "Ivulen Andromo",
+    DAS_QUEST_M_SAVILE      = "Savile Alam",
+    DAS_QUEST_M_KYLIA       = "Kylia Thando",
+    DAS_QUEST_M_EVOS        = "Evos Hledas",
+    DAS_QUEST_M_ALVES       = "Alves Droth",
+    DAS_QUEST_M_DREDASE     = "Dredase-Hlarar",
+    DAS_QUEST_M_VORAR       = "Vorar Vendu",
+
+    DAS_QUEST_CC_ORC        = "Razgurug",
+    DAS_QUEST_CC_COOK       = "Aveberl Tremouille",
+    DAS_QUEST_CC_MINDORA    = "Mindora",
+    DAS_QUEST_CC_NJORD      = "Njordemar",
+    DAS_QUEST_CC_IGMUND     = "Igmund",
+
+    DAS_QUEST_W_GURUZUG     = "Guruzug",
+    DAS_QUEST_W_ARZORAG     = "Arzorag",
+
+
+
 }

 DAS_STRINGS_LOCALE.ru = strings
diff --git a/DailyAutoShare/questData/ClockworkCity.lua b/DailyAutoShare/questData/ClockworkCity.lua
index d9c2e48..4d86e7d 100644
--- a/DailyAutoShare/questData/ClockworkCity.lua
+++ b/DailyAutoShare/questData/ClockworkCity.lua
@@ -156,41 +156,29 @@ DAS.bingo[zoneId3] = DAS.bingo[zoneId]
 DAS.QuestLists[zoneId2] = DAS.QuestLists[zoneId]
 DAS.QuestLists[zoneId3] = DAS.QuestLists[zoneId]

-DAS.questStartStrings[zoneId] = {
-    [GetString(DAS_CLOCK_BOSS_START)] = true,
-    [GetString(DAS_CLOCK_CAVE_START)] = true,
-    [GetString(DAS_CLOCK_CROW_START)] = true,
-    [GetString(DAS_CLOCK_CRAFT_START)] = true,
+DAS.questStarter[zoneId] = {
+    [GetString(DAS_QUEST_CC_ROBOT)] = true,
+    [GetString(DAS_QUEST_CC_NOVICE)] = true,
+    [GetString(DAS_QUEST_CC_ORC)] = true,
+    [GetString(DAS_QUEST_CC_CROW)] = true,
 }
-DAS.questStartStrings[zoneId2] = DAS.questStartStrings[zoneId]
-DAS.questStartStrings[zoneId3] = DAS.questStartStrings[zoneId]
-
-DAS.questTurninStrings[zoneId] = {
-
-    [GetString(DAS_CLOCK_CRAFT_CLOTH_TURNIN )] = true,
-    [GetString(DAS_CLOCK_CRAFT_WATER_TURNIN )] = true,
-    [GetString(DAS_CLOCK_CRAFT_RUNE_TURNIN	 )] = true,
-    [GetString(DAS_CLOCK_CRAFT_SMITH_TURNIN )] = true,
-    [GetString(DAS_CLOCK_CRAFT_ALCH_TURNIN	 )] = true,
-    [GetString(DAS_CLOCK_CRAFT_WOOD_TURNIN	 )] = true,
-
-    [GetString(DAS_CLOCK_DELVE_FILT_TURNIN)] = true,
-    [GetString(DAS_CLOCK_DELVE_FANS_TURNIN)] = true,
-    [GetString(DAS_CLOCK_DELVE_COMM_TURNIN)] = true,
-    [GetString(DAS_CLOCK_DELVE_MALF_TURNIN)] = true,
-    [GetString(DAS_CLOCK_DELVE_MISP_TURNIN)] = true,
-    [GetString(DAS_CLOCK_DELVE_AGAI_TURNIN)] = true,
-
-    [GetString(DAS_CLOCK_CROW_GLIT_TURNIN)] = true,
-    [GetString(DAS_CLOCK_CROW_TRIB_TURNIN)] = true,
-    [GetString(DAS_CLOCK_CROW_NIBB_TURNIN)] = true,
-    [GetString(DAS_CLOCK_CROW_MORS_TURNIN)] = true,
-    [GetString(DAS_CLOCK_CROW_RESP_TURNIN)] = true,
-    [GetString(DAS_CLOCK_CROW_LEIS_TURNIN)] = true,
-
-    [GetString(DAS_CLOCK_IMP_TURNIN)] = true,
-    [GetString(DAS_CLOCK_FOE_TURNIN)] = true,
+
+DAS.questStarter[zoneId2] = DAS.questStarter[zoneId]
+DAS.questStarter[zoneId3] = DAS.questStarter[zoneId]
+
+DAS.questFinisher[zoneId] = {
+    [GetString(DAS_QUEST_CC_ROBOT)] = true,
+    [GetString(DAS_QUEST_CC_CROW)] = true,
+
+    [GetString(DAS_QUEST_CC_THISTLE )] = true,
+    [GetString(DAS_QUEST_CC_COOK    )] = true,
+    [GetString(DAS_QUEST_CC_MINDORA  )] = true,
+    [GetString(DAS_QUEST_CC_NJORD   )] = true,
+    [GetString(DAS_QUEST_CC_IGMUND   )] = true,
+    [GetString(DAS_QUEST_CC_DARO   )] = true,
+    [GetString(DAS_QUEST_CC_TILELLE  )] = true,
+

 }
-DAS.questTurninStrings[zoneId2] = DAS.questTurninStrings[zoneId]
-DAS.questTurninStrings[zoneId3] = DAS.questTurninStrings[zoneId]
\ No newline at end of file
+DAS.questFinisher[zoneId2] = DAS.questFinisher[zoneId]
+DAS.questFinisher[zoneId3] = DAS.questFinisher[zoneId]
\ No newline at end of file
diff --git a/DailyAutoShare/questData/GoldCoast.lua b/DailyAutoShare/questData/GoldCoast.lua
index 5438541..da3dc79 100644
--- a/DailyAutoShare/questData/GoldCoast.lua
+++ b/DailyAutoShare/questData/GoldCoast.lua
@@ -23,15 +23,15 @@ table.insert(tbl2, {[1] = "evil", [2] = "buried"})
 DAS.makeBingoTable(zoneId, tbl2)


-DAS.questStartStrings[zoneId] = {
-    [GetString(DAS_DB_QUEST_START)] = true,
+DAS.questStarter[zoneId] = {
+    [GetString(DAS_QUEST_DB_BOUNTY)]    = true,
 }

-DAS.questTurninStrings[zoneId] = {
+DAS.questFinisher[zoneId] = {

-    [GetString(DAS_DB_ARENA_TURNIN)] = true,
-    [GetString(DAS_DB_MINO_TURNIN)] = true,
-    [GetString(DAS_DB_GOOD_TURNIN)] = true,
-    [GetString(DAS_DB_EVIL_TURNIN)] = true,
+    [GetString(DAS_QUEST_DB_ARVINA)]    = true,
+    [GetString(DAS_QUEST_DB_LARONEN)]   = true,
+    [GetString(DAS_QUEST_DB_FINIA)]     = true,
+    [GetString(DAS_QUEST_DB_CODUS)]     = true,

 }
diff --git a/DailyAutoShare/questData/Morrowind.lua b/DailyAutoShare/questData/Morrowind.lua
index 2a3a941..46862ba 100644
--- a/DailyAutoShare/questData/Morrowind.lua
+++ b/DailyAutoShare/questData/Morrowind.lua
@@ -1,7 +1,7 @@
 DAS.shareables 	        = DAS.shareables    or {}
 DAS.bingo 		        = DAS.bingo 	    or {}
-DAS.questTurninStrings  = DAS.questTurninStrings    or {}
-DAS.questStartStrings   = DAS.questStartStrings     or {}
+DAS.questFinisher  = DAS.questFinisher    or {}
+DAS.questStarter   = DAS.questStarter     or {}


 local zoneId	= 849
@@ -129,34 +129,31 @@ DAS.shareables[925] = {
 DAS.makeBingoTable(zoneId, tbl2)


-DAS.questStartStrings[zoneId] = {
-    [GetString(DAS_M_BOSS_START)] = true,
-    [GetString(DAS_M_DELVE_START)] = true,
-    [GetString(DAS_M_HUNT_START)] = true,
-    [GetString(DAS_M_RELIC_START)] = true,
+DAS.questStarter[zoneId] = {
+    [GetString(DAS_QUEST_M_BELERU)]     = true,  -- Hall of Justice
+    [GetString(DAS_QUEST_M_TRAYLAN)]    = true,  -- Hall of Justice
+    [GetString(DAS_QUEST_M_ASHLANDER)]  = true,  -- Ashlander Hunt
+    [GetString(DAS_QUEST_M_NUMANI)]     = true,  -- Ashlander Relics
 }

-DAS.questTurninStrings[zoneId] = {
-
-    [GetString(DAS_M_BOSS_TURNIN)] = true,
-    [GetString(DAS_M_HUNT_TURNIN)] = true,
-    [GetString(DAS_M_RELIC_TURNIN)] = true,
-
-    [GetString(DAS_M_DELVE_DAEDR_TURNIN)] = true,
-    [GetString(DAS_M_DELVE_KWAMA_TURNIN)] = true,
-    [GetString(DAS_M_DELVE_MISIN_TURNIN)] = true,
-    [GetString(DAS_M_DELVE_TAXES_TURNIN)] = true,
-    [GetString(DAS_M_DELVE_TRIBA_TURNIN)] = true,
-    [GetString(DAS_M_DELVE_SYNDI_TURNIN)] = true,
-
-    [GetString(DAS_M_BOSS_WUYWU_TURNIN)] = true,
-    [GetString(DAS_M_BOSS_SWARM_TURNIN)] = true,
-    [GetString(DAS_M_BOSS_NILTH_TURNIN)] = true,
-    [GetString(DAS_M_BOSS_SALOT_TURNIN)] = true,
-    [GetString(DAS_M_BOSS_SIREN_TURNIN)] = true,
-    [GetString(DAS_M_BOSS_APPRE_TURNIN)] = true,
-
-
-
+DAS.questFinisher[zoneId] = {
+    [GetString(DAS_QUEST_M_ASHLANDER)]  = true,
+    [GetString(DAS_QUEST_M_NUMANI)]     = true,
+
+    [GetString(DAS_QUEST_M_NARA)]       = true,
+    [GetString(DAS_QUEST_M_TRAYLAN )]   = true,
+    [GetString(DAS_QUEST_M_BELERU  )]   = true,
+    [GetString(DAS_QUEST_M_NUMANI  )]   = true,
+    [GetString(DAS_QUEST_M_NARA    )]   = true,
+    [GetString(DAS_QUEST_M_TIRVINA )]   = true,
+    [GetString(DAS_QUEST_M_DINOR   )]   = true,
+    [GetString(DAS_QUEST_M_BRAVOSI )]   = true,
+    [GetString(DAS_QUEST_M_IVULEN  )]   = true,
+    [GetString(DAS_QUEST_M_SAVILE  )]   = true,
+    [GetString(DAS_QUEST_M_KYLIA   )]   = true,
+    [GetString(DAS_QUEST_M_EVOS    )]   = true,
+    [GetString(DAS_QUEST_M_ALVES   )]   = true,
+    [GetString(DAS_QUEST_M_DREDASE )]   = true,
+    [GetString(DAS_QUEST_M_VORAR   )]   = true,
 }

diff --git a/DailyAutoShare/questData/Wrothgar.lua b/DailyAutoShare/questData/Wrothgar.lua
index e42aa73..516185c 100644
--- a/DailyAutoShare/questData/Wrothgar.lua
+++ b/DailyAutoShare/questData/Wrothgar.lua
@@ -1,7 +1,7 @@
 DAS.shareables 	        = DAS.shareables            or {}
 DAS.bingo 		        = DAS.bingo 	            or {}
-DAS.questTurninStrings  = DAS.questTurninStrings    or {}
-DAS.questStartStrings   = DAS.questStartStrings     or {}
+DAS.questFinisher  = DAS.questFinisher    or {}
+DAS.questStarter   = DAS.questStarter     or {}

 local zoneId	= 684

@@ -39,25 +39,25 @@ table.insert(tbl2, {[1] = "bandit", [2] = "fire"})

 DAS.makeBingoTable(zoneId, tbl2)

-DAS.questStartStrings[zoneId] = {
-    [GetString(DAS_W_BOSS_START)] = true,
-    [GetString(DAS_W_DELVE_START)] = true,
+DAS.questStarter[zoneId] = {
+    [DAS_QUEST_W_GURUZUG] = true,
+    [DAS_QUEST_W_ARZORAG] = true,
 }

-DAS.questTurninStrings[zoneId] = {
-
-    [GetString(DAS_W_POA_TURNIN)] = true,
-    [GetString(DAS_W_EDU_TURNIN)] = true,
-    [GetString(DAS_W_NYZ_TURNIN)] = true,
-    [GetString(DAS_W_CORI_TURNIN)] = true,
-    [GetString(DAS_W_DOLMEN_TURNIN)] = true,
-    [GetString(DAS_W_OGRE_TURNIN)] = true,
-
-    [GetString(DAS_W_HARPIES_TURNIN)] = true,
-    [GetString(DAS_W_SPIRITS_TURNIN)] = true,
-    [GetString(DAS_W_DURZOGS_TURNIN)] = true,
-    [GetString(DAS_W_DWEMER_TURNIN)] = true,
-    [GetString(DAS_W_WEREWOLVES_TURNIN)] = true,
-    [GetString(DAS_W_THAT_OTHER_TURNIN)] = true,
+DAS.questFinisher[zoneId] = {
+
+    [GetString(DAS_QUEST_W_OUFA      )] = true,
+    [GetString(DAS_QUEST_W_USHANG    )] = true,
+
+    [GetString(DAS_QUEST_W_NEDNOR    )] = true,
+    [GetString(DAS_QUEST_W_THAZEK    )] = true,
+    [GetString(DAS_QUEST_W_ARUSHNA   )] = true,
+    [GetString(DAS_QUEST_W_LILYAMEH  )] = true,
+    [GetString(DAS_QUEST_W_BAGRUBESH )] = true,
+    [GetString(DAS_QUEST_W_CIRANTILLE)] = true,
+    [GetString(DAS_QUEST_W_BIRKHU    )] = true,
+    [GetString(DAS_QUEST_W_MENNINIA  )] = true,
+    [GetString(DAS_QUEST_W_SONOLIA   )] = true,
+    -- [GetString(DAS_QUEST_W_RAYNOR    )] = true,

 }
diff --git a/DailyAutoShare/startup.lua b/DailyAutoShare/startup.lua
index 05b9086..b275097 100644
--- a/DailyAutoShare/startup.lua
+++ b/DailyAutoShare/startup.lua
@@ -12,8 +12,8 @@ DAS.shareables   	        = {}
 DAS.bingo 			        = {}
 DAS.subzones 		        = {}

-DAS.questTurninStrings      = {}
-DAS.questStartStrings       = {}
+DAS.questFinisher      = {}
+DAS.questStarter       = {}

 DAS.channelTypes 	        = {
     [CHAT_CHANNEL_PARTY]    = true,
@@ -91,7 +91,8 @@ local defaults = {
 			["invisible"] = false,
 			["active"] = true,
 		},
-	},
+	},
+    questShareString            = "I can give a DailyAutoShare for <<1>>, type <<2>> for an instant invite",
 	debugOutput		   			= false,
 	currentlyWithQuest 			= false,
 	currentQuestIndex 			= nil,