Trigger Filtering

Modified

06-Jul-2023

Introduction


Advanced trigger filtering was introduced in Sven Co-op 4.5. It allows entities to enforce requirements on their target's and caller's targetnames and/or classes in order to receive triggering. Trigger filtering only operates on the direct triggering system. For example, you cannot use this to exclude a player with a specific targetname from triggering a trigger_multiple by walking into it; you'd need to use a trigger_condition entity for that instead.

Trigger Filtering-keyvalues


The following keyvalues can be set on entities to enable trigger filtering. Note that although this works for all entities, not all entities have these keyvalues; this was done to prevent bloat.

Name Out Filter Type toutfiltertype : Set whether to forbid or require certain targetname(s) on the target entities.

  • 0 : Exclude
  • 1 : Include

Name Out Filter toutfilter : Semicolon-seperated list of targetnames to either be forbidden or required on targeted entities; can also specify only one.

Class Out Filter Type coutfiltertype : Set whether to forbid or require certain classname(s) on the target entities.

  • 0 : Exclude
  • 1 : Include

Class Out Filter coutfilter : Semicolon-seperated list of classnames to either be forbidden or required on targeted entities; can also specify only one.

Name In Filter Type tinfiltertype : Set whether to forbid or require certain targetname(s) on the entity which tries to trigger me in order to accept triggering.

  • 0 : Exclude
  • 1 : Include

Name In Filter tinfilter : Semicolon-seperated list of targetnames to either be forbidden or required on the caller-entity; can also specify only one.

Class In Filter Type cinfiltertype : Set whether to forbid or require certain classname(s) on the entity which tries to trigger me in order to accept triggering.

  • 0 : Exclude
  • 1 : Include

Class In Filter cinfilter : Semicolon-seperated list of classnames to either be forbidden or required on the caller-entity; can also specify only one.


Indeed, targetname out-filtering is trivial, since you know by what name you're targeting.