Mapping/Advanced Trigger Filtering

From Sven Co-op
< Mapping
Revision as of 16:56, 15 March 2023 by Outerbeast (talk | contribs) (Advanced Trigger Filtering Guide)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 = Forbid/Exclude; 1 = Require/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 = Forbid/Exclude; 1 = Require/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 = Forbid/Exclude; 1 = Require/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 = Forbid/Exclude; 1 = Require/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.