Is that true? Because my script fails to register itself for update again after it finishes its functions, so registering before the functions are called should keep it running like it needs.
Event OnUpdate()RegisterForSingleUpdate(60)if (pCWAttackCity.IsRunning()) && (pCWAttackCity.GetStage() < 50) if !(Alias_CWAttackCityJarl.GetRef()) Alias_CWAttackCityJarl.ForceRefTo(CWAttackCityJarl.GetRef()) endifelseif (Alias_CWAttackCityJarl.GetRef()) Alias_CWAttackCityJarl.Clear()endifif (pFreeformRiften01.GetStage() == 200) || (pFreeformRiften20.GetStage() == 250) Alias_FreeformRiften01Jarl.UnregisterForUpdate()endifif (pFreeformRiftenThane.GetStage() == 200) || (pFreeformRiften20.GetStage() == 250) Alias_FreeformRiftenThaneJarl.UnregisterForUpdate()endifif (pCWPostWhiterunObj.GetStage() == 100) Alias_CWPostWhiterunObjJarl.UnregisterForUpdate()endifif (pMS14.GetStage() == 200) Alias_MS14Jarl.UnregisterForUpdate()endifGoToState("checking")CheckEssentials()CheckEssentialAliases()GoToState("")endEventSTATE checkingEvent OnUpdate() RegisterForSingleUpdate(60)endEventendSTATE
Event OnUpdate()if (pCWAttackCity.IsRunning()) && (pCWAttackCity.GetStage() < 50) if !(Alias_CWAttackCityJarl.GetRef()) Alias_CWAttackCityJarl.ForceRefTo(CWAttackCityJarl.GetRef()) endifelseif (Alias_CWAttackCityJarl.GetRef()) Alias_CWAttackCityJarl.Clear()endifif (pFreeformRiften01.GetStage() == 200) || (pFreeformRiften20.GetStage() == 250) Alias_FreeformRiften01Jarl.UnregisterForUpdate()endifif (pFreeformRiftenThane.GetStage() == 200) || (pFreeformRiften20.GetStage() == 250) Alias_FreeformRiftenThaneJarl.UnregisterForUpdate()endifif (pCWPostWhiterunObj.GetStage() == 100) Alias_CWPostWhiterunObjJarl.UnregisterForUpdate()endifif (pMS14.GetStage() == 200) Alias_MS14Jarl.UnregisterForUpdate()endifCheckEssentials()CheckEssentialAliases()RegisterForSingleUpdate(60)endEventI would put a few Notification or Trace statements before and after your check functions (and possibly inside of them too) just to see what's really happening.