OnTriggerLeave - ObjectReference

From the Fallout4 CreationKit Wiki
Revision as of 07:58, 26 August 2016 by imported>Goggle (→‎Examples)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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


; Check how many objects are inside the trigger so that the events run in proper sequence.
Event OnTriggerEnter(ObjectReference akTriggerRef)
	if GetTriggerObjectCount() == 1
		if akTriggerRef == Game.GetPlayer()
		;	debug.notification("Entered Trigger")
			GetLinkedRef().Activate(Game.GetPlayer())
		endif
	endif
EndEvent

Event OnTriggerLeave(ObjectReference akTriggerRef)
	if GetTriggerObjectCount() == 0
		if akTriggerRef == Game.GetPlayer()
		;	debug.notification("Leaving Trigger")
			GetLinkedRef().Activate(Game.GetPlayer())
		endif
	endif
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.
    • Note, however, that because of the way Papyrus event handling and threading works, at any given moment, your count may be inaccurate, and there is a risk of the count becoming 'stuck' over time if events are not processed correctly. If your script requires precise accuracy, use the trigger's Interaction Conditions to restrict it to just the references you care about (eg. the player), then use GetTriggerObjectCount to verify that the reference is actually in the trigger at the time it matters.

See Also[edit | edit source]