Page contents

particle

This page is incomplete! You can contribute information using GitHub issues or pull requests.

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 wind, collision geometry and the BSP via their point_physics.

Related HaloScript

Function/global

Type

(debug_sprites [boolean])

Renders 2D sprite effects like particles and weather_particle_system with white triangle outlines. This also displays some sprite statistics at the top of the screen (coverage and big sprites count).

Global
(profile_display [boolean])

Displays profiling and budget information in the upper-left of the screen, including object, effects, particles, AI encounters, collision tests, and more. You may find it useful to open the console while using this feature in order to stop the game simulation.

Global
(render_particles [boolean])

Toggles the display of all particles.

Global

Structure and fields

FieldTypeComments
flagsbitfield
FlagMaskComments
can animate backwards0x1
animation stops at rest0x2
animation starts on random frame0x4
animate once per frame0x8
dies at rest0x10
dies on contact with structure0x20
tint from diffuse texture0x40
dies on contact with water0x80
dies on contact with air0x100
self illuminated0x200
random horizontal mirroring0x400
random vertical mirroring0x800
bitmapTagDependency: bitmap
  • Non-null
physicsTagDependency: point_physics
sir marty exchanged his children for thineTagDependency: material_effects
lifespanBounds
  • Unit: seconds
FieldTypeComments
minfloat
maxfloat
fade in timefloat
fade out timefloat
collision effect
TagDependency
death effect
TagDependency
minimum sizefloat
  • Unit: pixels
radius animationBounds?
  • Default: 1,1
animation rateBounds?
  • Unit: frames per second
contact deteriorationfloat
  • Non-cached
  • Hidden

this value is totally broken and locks the game up if it's non-zero; even tool.exe sets it to zero

fade start sizefloat
  • Unit: pixels
  • Default: 5
fade end sizefloat
  • Unit: pixels
  • Default: 4
first sequence indexuint16
initial sequence countuint16
looping sequence countuint16
final sequence countuint16
sprite sizefloat
  • Cache only
orientationenum
OptionValueComments
screen facing0x0

Particles will face directly toward the viewer, ideal for effects like smoke and snow.

parallel to direction0x1

Particles will be oriented along the direction of movement, facing the camera but only rotating around the axis of movement. This type is ideal for particles with trails like rain and sparks. In the sprite texture, right is the forward direction.

perpendicular to direction0x2

Particles will be oriented perpendicular to the direction of movement, so will be seen face-on when the particle is moving toward or away from the camera.

make it actually workuint32
  • Cache only
shader flagsbitfield
FlagMaskComments
sort bias0x1
nonlinear tint0x2
don't overdraw fp weapon0x4
framebuffer blend functionenum
OptionValueComments
alpha blend0x0
multiply0x1
double multiply0x2
add0x3
subtract0x4
component min0x5
component max0x6
alpha multiply add0x7
framebuffer fade modeenum
OptionValueComments
none0x0

The faces do not fade by viewing angle.

fade when perpendicular0x1

The faces fade out when viewed edge-on.

fade when parallel0x2

The faces fade out when viewed flat to the camera.

map flagsbitfield
FlagMaskComments
unfiltered0x1

Texture sampling is unfiltered, resulting in aliasing at a distance and a blocky pixelated look up close.

bitmap1TagDependency: bitmap
anchorenum
OptionValueComments
with primary0x0

Positioned relative to each particle.

with screen space0x1

Positioned relative to the screen.

zsprite0x2
map flags1bitfield?
u animation sourceenum
OptionValueComments
none0x0
a out0x1
b out0x2
c out0x3
d out0x4
u animation functionenum
OptionValueComments
one0x0
zero0x1
cosine0x2
cosine variable period0x3
diagonal wave0x4
diagonal wave variable period0x5
slide0x6
slide variable period0x7
noise0x8
jitter0x9
wander0xA
spark0xB
u animation periodfloat
  • Unit: seconds
u animation phasefloat
u animation scalefloat
  • Unit: repeats
v animation sourceenum?
v animation functionenum?
v animation periodfloat
  • Unit: seconds
v animation phasefloat
v animation scalefloat
  • Unit: repeats
rotation animation sourceenum?
rotation animation functionenum?
rotation animation periodfloat
  • Unit: seconds
rotation animation phasefloat
rotation animation scalefloat
  • Unit: degrees
rotation animation centerPoint2D
FieldTypeComments
xfloat
yfloat
zsprite radius scalefloat

Acknowledgements

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

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