particle

🚧 This article is a stub. You can help expand it by submitting content in pull requests or issues in this wiki's source repo.

The particle tag defines the characteristics of point-like entities used extensively throughout Halo's effects to simulate sparks, smoke, plasma, blood, and more. Particles can interact with collision geometry and the BSP via their point_physics.

Structure and fields #

Field Type Comments
flags bitfield(32)
Flag Mask Comments
can animate backwards 0x1
animation stops at rest 0x2
animation starts on random frame 0x4
animate once per frame 0x8
dies at rest 0x10
dies on contact with structure 0x20
tint from diffuse texture 0x40
dies on contact with water 0x80
dies on contact with air 0x100
self illuminated 0x200
random horizontal mirroring 0x400
random vertical mirroring 0x800
pad(4)
lifespan f32 (seconds) (min & max)
fade in time f32
fade out time f32
minimum size f32 (pixels)
pad(8)

on some (probably older) tags like effects/particles/energy/smoke c generic.particle, this is floats 2.0 and 1.0, but these tags can't be replicated in the HEK

radius animation f32 (min & max)
  • Default value: 1,1.
pad(4)
animation rate f32 (frames per second) (min & max)
contact deterioration f32
  • Internal to the tag and may be hidden in tools.
  • Not included when the tag is compiled into a map cache.
fade start size f32 (pixels)
  • Default value: 5.
fade end size f32 (pixels)
  • Default value: 4.
pad(4)
first sequence index Index: u16
initial sequence count u16
looping sequence count u16
final sequence count u16
pad(8)
sprite size f32 (little endian?)
  • Only set when the tag is compiled into a map cache.
orientation enum
Option Value Comments
screen facing 0x0
parallel to direction 0x1
perpendicular to direction 0x2
pad(2)
pad(36)
make it actually work u32 (little endian?)
  • Only set when the tag is compiled into a map cache.
shader flags bitfield(16)
Flag Mask Comments
sort bias 0x1
nonlinear tint 0x2
don't overdraw fp weapon 0x4
framebuffer blend function enum
Option Value Comments
alpha blend 0x0
multiply 0x1
double multiply 0x2
add 0x3
subtract 0x4
component min 0x5
component max 0x6
alpha multiply add 0x7
framebuffer fade mode enum
Option Value Comments
none 0x0
fade when perpendicular 0x1
fade when parallel 0x2
map flags bitfield(16)
Flag Mask Comments
unfiltered 0x1
pad(28)
anchor enum
Option Value Comments
with primary 0x0
with screen space 0x1
zsprite 0x2
map flags1 bitfield(16)
Flag Mask Comments
unfiltered 0x1
u animation source enum
Option Value Comments
none 0x0
a out 0x1
b out 0x2
c out 0x3
d out 0x4
u animation function enum
Option Value Comments
one 0x0
zero 0x1
cosine 0x2
cosine variable period 0x3
diagonal wave 0x4
diagonal wave variable period 0x5
slide 0x6
slide variable period 0x7
noise 0x8
jitter 0x9
wander 0xa
spark 0xb
u animation period f32 (seconds)
u animation phase f32
u animation scale f32 (repeats)
v animation source enum
Option Value Comments
none 0x0
a out 0x1
b out 0x2
c out 0x3
d out 0x4
v animation function enum
Option Value Comments
one 0x0
zero 0x1
cosine 0x2
cosine variable period 0x3
diagonal wave 0x4
diagonal wave variable period 0x5
slide 0x6
slide variable period 0x7
noise 0x8
jitter 0x9
wander 0xa
spark 0xb
v animation period f32 (seconds)
v animation phase f32
v animation scale f32 (repeats)
rotation animation source enum
Option Value Comments
none 0x0
a out 0x1
b out 0x2
c out 0x3
d out 0x4
rotation animation function enum
Option Value Comments
one 0x0
zero 0x1
cosine 0x2
cosine variable period 0x3
diagonal wave 0x4
diagonal wave variable period 0x5
slide 0x6
slide variable period 0x7
noise 0x8
jitter 0x9
wander 0xa
spark 0xb
rotation animation period f32 (seconds)
rotation animation phase f32
rotation animation scale f32 (degrees)
rotation animation center
Point2D
  • x: f32
  • y: f32
pad(4)
zsprite radius scale f32
pad(20)

This information was partially generated using Invader tag definitions.

Acknowledgements

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

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