If I'm reading it right, it forces a delay on the activation of the script. To reduce the likelihood of errors, I think?
Stripping the timer part would probably cause no errors, it is just something to avoid executing the core of the script ( if ( GetJournalIndex and below ) each and every frame. In this particular case, as the core of the script has only fast enough commands, the delay could be skipped, I used it mainly to show a simple way to add delay. Here is the simpler version, I think there would be no noticeable FPS difference between the 2 versions
begin ketwAANP1Scriptif ( MenuMode ) returnendifif ( GetJournalIndex A2_6_Incarnate < 50 ) returnendifif ( player->GetSpellEffects "avkw_np_nerevarspirit" ) returnendifplayer->addspell "avkw_np_nerevarspirit" end
[EDIT]or, instead of a timer we could use the classic "do once" approach, this way we would have to store the doOnce variable in the saved game though, so no DontSaveObject, something like this for instance
begin ketwAANP1Scriptshort doOnceif ( doOnce ) returnendifif ( MenuMode ) returnendifif ( GetJournalIndex A2_6_Incarnate < 50 ) returnendifif ( player->GetSpellEffects "avkw_np_nerevarspirit" ) returnendifplayer->addspell "avkw_np_nerevarspirit"set doOnce to 1 end
P.S. it is not necessary to really finish the main quest to test the scripts; as the only real condition is related to a quest index, you can just go to the proper interior cells and set the quest index from game console writing
Journal A2_6_Incarnate 50
and
Journal C3_DestroyDagoth 50