Issue #32561: Teekeeus may be permanently stuck in his room upon completion of the Chorrol Recommendation quests
This one happened to me on my first playthrough of the game. After completing the Mages Guild Chorrol Recommendation quests (Parts I and II), Teekeeus was permanently stuck in his room behind a locked door and never came out again. After poking around in the CS, I found the cause of the issue. This is how it can occur:
1. Start the Chorrol Recommendation quest (MG05Fingers).
2. Retrieve the book "Fingers of the Mountain" (MG05FingersBook) from Cloud Top.
3. Return to Chorrol and give the book to Teekeeus.
4. Immediately go and find Earana, tell her you gave the book to Teekeeus, and refuse to steal it back for her when she asks you to do so.
Depending on the timing, this can cause Teekeeus to get stuck in his room permanently. The reason for this is as follows:
When you give the book to Teekeeus, it completes Part I of the Chorrol Recommendation quest (MG05Fingers). The quest is set to stage 100, where the result script stops the quest, starts Part II of the Chorrol Recommendation quest (MG05A), sets MG05A.Teekeeushasbook to 1, and forces Teekeeus to evaluate his current AI package.
This will result in Teekeeus picking AI package MG05ATeekeeusSecuresBook (which the UOP moves to the top of his AI list). This AI package forces Teekeeus to immediately head toward a marker in his room, where he will stand until the book is removed from his inventory and placed in the nearby chest.
The moving of the book from Teekeeus to the chest is handled by the MG05A quest script (MG05AScript). The relevant code snippet is included below for reference:
;Teekeeus places book in chest in his room for safe-keeping (placed here since at this point, quest MG05Fingers has ended) if ( GetStage MG05Fingers == 100 ) if ( teekeeushasbook == 0 ) if ( Teekeeus01.getitemcount "MG05FingersMiscBook" == 1 ) set teekeeushasbook to 1 endif elseif ( teekeeushasbook == 1 ) if ( packagerunning == 0 ) Teekeeus01.EvaluatePackage if ( Teekeeus01.GetIsCurrentPackage MG05ATeekeeusSecuresBook == 1 ) set packagerunning to 1 endif endif if ( Teekeeus01.GetDistance MS19TeekeeusChest01 < 200 ) if ( Teekeeus01.getitemcount MG05FingersMiscBook == 1 ) set teekeeushasbook to 3 Teekeeus01.removeitem MG05FingersMiscBook 1 MS19TeekeeusChest01.additem MG05FingersMiscBook 1 endif endif endif endif
The code waits until Teekeeus is within 200 units distance of the relevant chest in his room before moving the book and setting the relevant variable (MG05A.Teekeeushasbook) to 3.
In the meantime, immediately after giving the book to Teekeeus, head out to find Earana and give her the bad news. Upon telling her that you gave the book to Teekeeus, quest MG05A will be set to stage 10 and you are given the option to steal it back for her or to refuse to do so.
If you refuse to steal the book back, Part II of the quest will be completed, the quest will be set to stage 200, and the result script will (among other things) stop the quest. Which stops the quest script (MG05AScript). Which means, if Teekeeus hasn't gotten to within 200 units of his chest yet, the book will never be moved from him to the chest, the relevant variable (Teekeeushasbook) will never be set to 3, and Teekeeus will never leave his room once he reaches the marker since the AI package telling him to go there will always be picked every time his AI evaluates, as the conditions for picking it remain true and it's at the top of the list.
Admittedly, this is a bit of an obscure bug. Most players will never see it, since most players will most likely steal the book back for Earana in order to get the "Finger of the Mountain" spell. It also depends on timing; if Teekeeus has time to reach his chest before the player talks to Earana the issue doesn't exist. (However, Earana tends to hang out by the Great Oak just outside the Mages Guild, so it doesn't take long to reach her after talking to Teekeeus). Also, in the vanilla game, Teekeeus will emerge from his room periodically (from 9-12 every day) even if this bug does occur, since in the vanilla game the MG05ATeekeeusSecuresBook AI package is second in his AI list, not first; it's only when using the UOP that he will be stuck in his room 24/7. Further, Teekeeus is neither a merchant nor a service provider of any kind; his presence in the game is technically irrelevant once the Chorrol Recommendation quests are completed. Having him stuck in his room is an annoyance at best.
However, as I said it did happen to me on my very first playthrough, so the bug is real and can occur under the correct set of circumstances. Whether a fix for this possibility should be included in the UOP is up to the patch's caretakers, I guess.
Possible solutions for this bug (as far as I can see) include:
1. Add another condition to the MG05ATeekeeusSecuresBook AI package which checks to make sure the MG05A quest hasn't been completed. This will free Teekeeus even if the book never gets moved to the chest. In this case, Teekeeus will continue to carry the book with him for the remainder of the game. Since (I believe) the book is useless once Part II of the quest has been completed, this probably wouldn't be a big deal.
2. Add some "safety code" to the result script of MG05A stage 200 to ensure the book gets moved and the variable gets changed even though the quest has been stopped. At this stage I don't think it's relevant whether Teekeeus is actually within range of the chest or not since the player will be talking to Earana and is in no position to see him.
3. Move the code which handles moving the book and setting the variable to its own separate script / quest, start it from stage 100 of MG05Fingers, and have it self-terminate once the book has been moved. This divorces Teekeeus' handling of the book completely from the player's actions with Earana.
With apologies for the Wall o'Text...