[SOLVED] Quest Select/Accept/Complete Macro

Hi, I’ve been trying to make a macro which enables me to select, accept and complete quests using the same keybind.

At the moment I’ve got it working for [some] quest givers offering multiple quests, and ‘wanted poster’ quests where you just need to press accept. Unfortunately it doesn’t work for quest givers where you need to first select the name of the quest.

This is what I have so far:

/run SelectAvailableQuest(1)
/run AcceptQuest()
/run CompleteQuest(1)
/run GetQuestReward(1)

Please help!

Also, I am aware there are many addons which offer this functionality but my loading screens are way too long as it is, so I would much prefer to get this macro working.

Thanks in advance.

1 Like
/run C_GossipInfo.SelectAvailableQuest(1)
/run AcceptQuest()
/run CompleteQuest(1)
/run GetQuestReward(1)

Thanks for the reply, but this isn’t working for me ingame. Does it work for you?

Also, I notice on your link it says that the command was updated for dragonflight to ‘accept optionID instead of index’. Any ideas what the possible optionIDs could be?

Right above where it says that it explains that it’s the questID from https://wowpedia.fandom.com/wiki/API_C_GossipInfo.GetAvailableQuests

Thanks again for the reply, but I’m afraid I still don’t understand what I write in my macro.

Are questIDs unique? If so, is it possible to find the questID and then select the quest based on it’s ID in the same macro?

Apologies, I’m just not familiar with the API and how it works.

I’m struggling to find a quest giver with 2 quests to even test it on.

But basically it’s going to return a table to all the available quests and you’ll need to pull the questID from the first quest in the table

[added]
Try

/run C_GossipInfo.SelectAvailableQuest(C_GossipInfo.GetAvailableQuests()[1]["questID"])
1 Like

YES!

Your last reply worked for the NPCs with single quests. So I shoved on the line that was working for the NPCs with multiple quests before:
/run SelectAvailableQuest(1)

…and it works perfectly now!

Thanks so much, I never would have figured it out myself. Here is the macro in its entirety:

/run C_GossipInfo.SelectAvailableQuest(C_GossipInfo.GetAvailableQuests()[1]["questID"])
/run SelectAvailableQuest(1)
/run AcceptQuest()
/run CompleteQuest(1)
/run GetQuestReward(1)

Thanks again!

6 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.