Last edited:
Unfortunately, it can vary on each quest. It's quite frustrating, but after you've done it a dozen times, you get used to running a Console snippet every time you see something with more than 1 objective. What I use:Would be nice if it's just the display order (or maybe it is and it's bugged?)
Anyway, for quest '65882', I'm getting objective index 0 = third objective in quest log, index 1 = first on log and index 2 = second on log. index 3 throws an out of bounds exception, so I'm guessing it's 0-based.
ClearLog();
Log(QuestLogManager.GetQuestById(XXXXX).GetTodoArgs(0));
Log(QuestLogManager.GetQuestById(XXXXX).GetTodoArgs(1));
ClearLog();
Log(QuestLogManager.GetQuestById(XXXXX).GetTodoArgs(0));
Log(QuestLogManager.GetQuestById(XXXXX).GetTodoArgs(1));
Log(QuestLogManager.GetQuestById(XXXXX).GetTodoArgs(2));
Log(QuestLogManager.GetQuestById(XXXXX).GetTodoArgs(3));
Agreed, but IsTodoChecked was supposed to replace variables, iirc.tbf, i find doing it the old fashioned way much faster. But then i've been doing them for a while. IsToDo leads to more console checks imo.
A few more cases:Thanks for reporting this, up till now there was only one reported case, and that wasn't enough for me to really draw any conclusions. If its what I think and they do some more ordering then ill replicate that so itll match it 100%
<Grind grindRef="My_First_Grimoire" while="not IsTodoChecked(65990, 1, 2)" />
<Grind grindRef="My_First_Grimoire2" while="not IsTodoChecked(65990, 1, 1)" />
<Grind grindRef="My_First_Grimoire3" while="not IsTodoChecked(65990, 1, 0)" />
<Grind grindRef="Whats_in_the_Box" while="not IsTodoChecked(65991, 1, 1)" />
<Grind grindRef="Whats_in_the_Box2" while="not IsTodoChecked(65991, 1, 0)" />
<Grind grindRef="My_First_Bow" while="not IsTodoChecked(65755, 1, 0)" />
<Grind grindRef="My_First_Bow2" while="not IsTodoChecked(65755, 1, 2)" />
<Grind grindRef="My_First_Bow3" while="not IsTodoChecked(65755, 1, 1)" />