Im looking into Registerforsingleupdate and while loop but for registerforsingleupdate, it uses a event (on update) The script im modifying uses a Event oneffectstart can 2 events work together? in other words can you nest events? Maybe I dont have too but just checking. Here is the script im trying to tweek, its a modded script to a mod, so im trying to keep it as true to its self as possible, with no additional changes elsewhere. its pretty simple for this test case
Event OnEffectStart(Actor akTarget, Actor akCaster)
PlayerRef = AkTarget
If PlayerRef.HasEffectKeyword(aleInjuryKW)
Utility.Wait(5.0)
If PlayerRef.HasEffectKeyword(aleInjuryKW) && PlayerRef.GetActorValuePercentage("Health") > 0.99
Utility.Wait(5.0)
If PlayerRef.HasEffectKeyword(aleInjuryKW) && PlayerRef.GetActorValuePercentage("Health") > 0.99
Utility.Wait(5.0)
If PlayerRef.HasEffectKeyword(aleInjuryKW) && PlayerRef.GetActorValuePercentage("Health") > 0.99
Utility.Wait(5.0)
If PlayerRef.HasEffectKeyword(aleInjuryKW) && PlayerRef.GetActorValuePercentage("Health") > 0.99
Debug.Notification("Injuries Healed")
ale_InjuryFullHeal.cast(PlayerRef)
EndIf
EndIf
EndIf
EndIf
EndIf
EndEvent
as my question said, im trying to find a good way to expand that 20 seconds with conditions true, to 10 mins with conditions true (which checking occasionally like 10 -20 seconds due to the much longer time frame) could i merge in or nest in somthing like @foamyesque said? int iChecksLeft = 20 ;replace with how many times you want to check the conditions Event OnUpdate() bool bConditions = false ;replace with whatever your conditions for continuing the loop are float fTime = 30.0 ;replace with your desired polling interval if bConditions iChecksLeft-=1 RegisterForSingleUpdate(fTime) endif if iChecksLeft > 0 else ; whatever you want to have happen after ten minutes endif EndEvent I feel like I could just replace the OnEffectStart Event, with the OnUpdate one because one of the conditions is having said effect BUT not sure