weather_particle_system

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

Weather particle systems define the appearance of weather like rain and snow. They are assigned to BSP clusters using Sapien and can be masked from localized areas using weather polyhedra.

Known issues

When the player is within a dense fog with a nearby opaque distance, weather particles will stop drawing even if set for the cluster containing fog. Ensure the opaque distance is sufficiently far away if weather particles in fog are desired.

Related HaloScript

Function/global

Type

(render_psystems [boolean])

Toggles the rendering of particle_systems and weather_particle_system.

Global
(weather [boolean])

Toggles the rendering of all weather_particle_system. Defaults to true.

Global

Structure and fields

FieldTypeComments
flagsbitfield
FlagMaskComments
unused0x1
particle typesBlock
  • HEK max count: 8
  • Processed during compile
FieldTypeComments
nameTagString
flagsbitfield
FlagMaskComments
interpolate colors in hsv0x1
along long hue path0x2
random rotation0x4
fade in start distancefloat
  • Unit: world units
fade in end distancefloat
  • Unit: world units
fade out start distancefloat
  • Unit: world units
fade out end distancefloat
  • Unit: world units
fade in start heightfloat
  • Unit: world units
fade in end heightfloat
  • Unit: world units
fade out start heightfloat
  • Unit: world units
fade out end heightfloat
  • Unit: world units
particle countBounds
  • Unit: particles per cubic world unit
FieldTypeComments
minfloat
maxfloat
physicsTagDependency: point_physics
acceleration magnitudeBounds?
acceleration turning ratefloat
acceleration change ratefloat
particle radiusBounds?
  • Unit: world units
animation rateBounds?
  • Unit: frames per second
rotation rateBounds
  • Unit: degrees per second
FieldTypeComments
minfloat
maxfloat
color lower boundColorARGB
FieldTypeComments
alphafloat
redfloat
greenfloat
bluefloat
color upper boundColorARGB?
sprite sizefloat
  • Cache only
sprite bitmapTagDependency: bitmap
  • Non-null
render modeenum
OptionValueComments
screen facing0x0
parallel to direction0x1
perpendicular to direction0x2
render direction sourceenum
OptionValueComments
from velocity0x0
from acceleration0x1
not brokenuint32
  • 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
fade when perpendicular0x1
fade when parallel0x2
map flagsbitfield
FlagMaskComments
unfiltered0x1
bitmapTagDependency: bitmap
anchorenum
OptionValueComments
with primary0x0
with screen space0x1
zsprite0x2
flags 1bitfield?
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
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)