Скорее всего он зависает на этом моменте:
if aaaaBTMqst == 3
if player.getitemcount aaaaBTMnote == 1
setstage aaaaBTMquest 35
endif
endif
if aaaaBTMqst == 3
if player.getitemcount aaaaBTMquestbook3 == 1
setstage aaaaBTMquest 40
set aaaaBTMqst to 4
endif
endif
Посмотрите внимательнее – при aaaaBTMqst = 3 производится проверка на наличие у игрока предмета aaaaBTMnote в количестве 1 шт. Если находим, то обновляем стадию квеста и так по кругу. По идее, когда у игрока появится предмет aaaaBTMquestbook3 в количестве 1 шт. скрипт должен продолжить работу, но у меня по какой-то причине зависает после того, как я беру aaaaBTMnote.
Скрипт не зависает, положил не тот объект. У меня всё работает, не особо быстро, конечно, но всё же. Не знаю, почему у Вас не работает.