🚧 This incomplete article needs help! Please submit tips and info by pull requests or issues or contacting a maintainer.

Effects are a multi-purpose tag used for responses to various events like material impacts, sound effects, projectile detonations, and more. They are made up of parts which can can spawn sounds, particles, lights, decals, and even new objects.

Structure and fields

Field Type Comments
flags bitfield
Flag Mask Comments
deleted when attachment deactivates 0x1
required for gameplay cannot optimize out 0x2
do not cull 0x4
  • Cache only
loop start event uint16
loop stop event uint16
maximum damage radius float
  • Cache only
locations Block
  • HEK max count: 32
Field Type Comments
marker name TagString
Field Type Comments
buffer char[32]
events Block
  • HEK max count: 32
Field Type Comments
skip fraction float
delay bounds Bounds
  • Unit: seconds
Field Type Comments
min float
max float
duration bounds Bounds?
  • Unit: seconds
parts Block
  • HEK max count: 32
Field Type Comments
create in 1 enum
Option Value Comments
any environment 0x0
air only 0x1
water only 0x2
space only 0x3
create in 2 enum
Option Value Comments
either mode 0x0
violent mode only 0x1
nonviolent mode only 0x2
location uint16
flags bitfield
Flag Mask Comments
face down regardless of location decals 0x1
unused 0x2
  • Cache only
make effect work 0x4
  • Cache only
type class uint32
  • Cache only
type
TagDependency (6)
velocity bounds Bounds?
  • Unit: world units per second
velocity cone angle float
angular velocity bounds Bounds
  • Unit: degrees per second
Field Type Comments
min float
max float
radius modifier bounds Bounds?
a scales values bitfield
Flag Mask Comments
velocity 0x1
velocity delta 0x2
velocity cone angle 0x4
angular velocity 0x8
angular velocity delta 0x10
type specific scale 0x20
b scales values bitfield?
particles Block
  • HEK max count: 32
  • Processed during compile
Field Type Comments
create in 1 enum?
create in 2 enum?
create enum
Option Value Comments
independent of camera mode 0x0
only in first person 0x1
only in third person 0x2
in first person if possible 0x3
location uint16
relative direction Euler2D
Field Type Comments
yaw float
pitch float
relative offset Point3D
Field Type Comments
x float
y float
z float
relative direction vector Vector3D
  • Cache only
Field Type Comments
i float
j float
k float
particle type

TagDependency: particle

flags bitfield
Flag Mask Comments
stay attached to marker 0x1
random initial angle 0x2
tint from object color 0x4
interpolate tint as hsv 0x8
across the long hue path 0x10
distribution function enum
Option Value Comments
start 0x0
end 0x1
constant 0x2
buildup 0x3
falloff 0x4
buildup and falloff 0x5
count Bounds
Field Type Comments
min uint16
max uint16
distribution radius Bounds?
  • Unit: world units
velocity Bounds?
  • Unit: world units per second
velocity cone angle float
angular velocity Bounds?
  • Unit: degrees per second
radius Bounds?
  • Unit: world units
tint lower bound ColorARGB
Field Type Comments
alpha float
red float
green float
blue float
tint upper bound ColorARGB?
a scales values bitfield
Flag Mask Comments
velocity 0x1
velocity delta 0x2
velocity cone angle 0x4
angular velocity 0x8
angular velocity delta 0x10
count 0x20
count delta 0x40
distribution radius 0x80
distribution radius delta 0x100
particle radius 0x200
particle radius delta 0x400
tint 0x800
b scales values bitfield?

Acknowledgements

Thanks to the following individuals for their research or contributions to this topic:

  • Kavawuvi (Invader tag definitions)
  • MosesOfEgypt (Tag structure research)