If you read the comments at the top of the script, it says it will only fire once. It goes into the "Done" state, which then essentially ignores all "Activate" events after that. I dont know if there is a default script to use, but you can make a custom one which may look something like this...
Scriptname _test_testscript extends ObjectReference Event OnActivate(ObjectReference akActionRef) ObjectReference kLinkedRef = GetLinkedRef() ;stores the linked ref in a variable if kLinkedRef.IsDisabled() kLinkedRef.Enable() else kLinkedRef.Disable() endIfendEvent
If you need some sort of delay between button presses, then you might want something like this... (fDelay needs to be defined, the cooldown time)
Scriptname _test_testscript extends ObjectReferencefloat Property fDelay = 3.0 Auto ;3.0 is defaultEvent OnActivate(ObjectReference akActionRef) GoToState("BusyState") ;busy state will ignore all OnActivate events ObjectReference kLinkedRef = GetLinkedRef() ;stores the linked ref in a variable if kLinkedRef.IsDisabled() kLinkedRef.Enable() else kLinkedRef.Disable() endIf Utility.Wait(fDelay) ;wait to return to the empty state GoToState("")endEventState BusyState Event OnActivate(OBjectReference akActionRef) ;do nothing endEventendState