scriptName defaultEnableDisableLinkedRef extends ObjectReference { - This script enables or disables linked ref based on which type user defines in properties. - Can be done OnTriggerEnter, or OnActivate, whichever happens first - This script only fires once then disables itself (default), or can be told to go to a done state (usually for activators) with the ShouldDisable bool. } int property TriggerType auto { 0 (default) - enables linked ref 1 - disables linked ref } bool Property PlayerOnly = TRUE auto { Does this only trigger for the player? (DEFAULT = TRUE) } bool Property Fade = FALSE auto { Fade in/out when enabled/disabled? (DEFAULT = FALSE) } bool Property ShouldDisable = TRUE auto { Should I disable once triggered/activated? (DEFAULT = TRUE) } float Property Delay = 0.0 auto { Delay before Enable/Disable (DEFAULT = 0.0) } ObjectReference myLinkedRef auto State Waiting Event onTriggerEnter(ObjectReference triggerRef) if (triggerRef == Game.GetPlayer()) || (!PlayerOnly) myLinkedRef = GetLinkedRef() as ObjectReference utility.Wait(Delay) if (TriggerType == 0) myLinkedRef.enable(Fade) elseif (TriggerType == 1) myLinkedRef.disable(Fade) endif if (ShouldDisable == TRUE) self.disable() else GoToState("Done") endif endif endEvent Event onActivate(ObjectReference triggerRef) if (triggerRef == Game.GetPlayer()) || (!PlayerOnly) myLinkedRef = GetLinkedRef() as ObjectReference utility.Wait(Delay) if (TriggerType == 0) myLinkedRef.enable(Fade) elseif (TriggerType == 1) myLinkedRef.disable(Fade) endif if (ShouldDisable == TRUE) self.disable() else GoToState("Done") endif endif endEvent endState State Done ;Do Nothing endState