OnTriggerLeave - ObjectReference

From the CreationKit Wiki
Jump to navigation Jump to search

Member of: ObjectReference Script (Papyrus)

Event called when the object reference is a trigger volume and has been left.

Syntax[edit | edit source]

Event OnTriggerLeave(ObjectReference akActionRef)

Parameters[edit | edit source]

Examples[edit | edit source]

Event OnTriggerLeave(ObjectReference akActionRef)
  Debug.Trace(akActionRef + " just left us!")
EndEvent

Notes[edit | edit source]

  • This event can be received out of order with OnTriggerEnter, so it's ideal to keep a count instead of a simple true/false value for when things are inside the trigger.
Int InTrigger = 0

Event OnTriggerEnter(ObjectReference akTriggerRef)
	if (InTrigger == 0)
		if akTriggerRef == Game.GetPlayer()
			InTrigger += 1
			debug.notification("Entered Trigger")
		endif
	endif
EndEvent

Event OnTriggerLeave(ObjectReference akTriggerRef)
	if (InTrigger > 0)
		if akTriggerRef == Game.GetPlayer()
			InTrigger -= 1
			debug.notification("Leaving Trigger")
		endif
	endif
EndEvent
  • If an ObjectReference's 3D unloads, that counts as the ObjectReference "leaving" the trigger.
  • If the trigger's own 3D unloads, that also counts as all ObjectReferences inside the trigger "leaving" the trigger.
  • If the player leaves the current loaded area, that unloads 3D for all ObjectReferences in the space they're departing, potentially firing OnTriggerLeave. The OnCellDetach event is not likely to run to completion before the refs begin to unload their 3D en masse, so you can't e.g. disable the trigger on detach to avoid being hit with unwanted OnTriggerLeave events.

See Also[edit | edit source]