particle_system

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

A particle system describes the creation and evolution of particles, most commonly for explosions.

This tag was given support for a "jet" particle creation physics type when Gearbox ported the game to PC, in order to support the flamethrower's fire.

Structure and fields

Field Type Comments
point physics

TagDependency: point_physics

system update physics enum
Option Value Comments
default 0x0
explosion 0x1
physics flags bitfield
Flag Mask Comments
unused 0x1
physics constants Block
  • HEK max count: 8
Field Type Comments
k float
particle types Block
  • HEK max count: 4
Field Type Comments
name TagString
Field Type Comments
buffer char[32]
flags bitfield
Flag Mask Comments
type states loop 0x1
forward backward 0x2
particle states loop 0x4
forward backward 1 0x8
particles die in water 0x10
particles die in air 0x20
particles die on ground 0x40
rotational sprites animate sideways 0x80
disabled 0x100
tint by effect color 0x200
initial count scales with effect 0x400
minimum count scales with effect 0x800
creation rate scales with effect 0x1000
scale scales with effect 0x2000
animation rate scales with effect 0x4000
rotation rate scales with effect 0x8000
don't draw in first person 0x10000
don't draw in third person 0x20000
initial particle count uint16
complex sprite render modes enum
Option Value Comments
simple 0x0
rotational 0x1
radius float
  • Unit: world units
particle creation physics enum
Option Value Comments
default 0x0
explosion 0x1
jet 0x2
physics flags bitfield?
physics constants Block?
  • HEK max count: 16
states Block
  • HEK max count: 8
Field Type Comments
name TagString?
duration bounds Bounds
  • Unit: second
Field Type Comments
min float
max float
transition time bounds Bounds?
  • Unit: second
scale multiplier float
animation rate multiplier float
rotation rate multiplier float
color multiplier ColorARGB
Field Type Comments
alpha float
red float
green float
blue float
radius multiplier float
minimum particle count float
particle creation rate float
  • Unit: particles per second
particle creation physics enum?
particle update physics enum
Option Value Comments
default 0x0
physics constants Block?
  • HEK max count: 16
particle states Block
  • HEK max count: 8
  • Processed during compile
Field Type Comments
name TagString?
duration bounds Bounds?
  • Unit: seconds
transition time bounds Bounds?
  • Unit: seconds
bitmaps

TagDependency: bitmap

sequence index uint16
scale Bounds?
  • Unit: world units per pixel
animation rate Bounds?
  • Unit: frames per second
rotation rate Bounds
  • Unit: degrees per second
Field Type Comments
min float
max float
color 1 ColorARGB?
color 2 ColorARGB?
radius multiplier float
point physics

TagDependency: point_physics

unknown int uint32
  • Cache only
shader flags bitfield
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
Flag Mask Comments
unfiltered 0x1
secondary map bitmap

TagDependency: bitmap

anchor enum
Option Value Comments
with primary 0x0
with screen space 0x1
zsprite 0x2
flags bitfield?
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 float
  • Unit: seconds
u animation phase float
u animation scale float
  • Unit: repeats
v animation source enum?
v animation function enum?
v animation period float
  • Unit: seconds
v animation phase float
v animation scale float
  • Unit: repeats
rotation animation source enum?
rotation animation function enum?
rotation animation period float
  • Unit: seconds
rotation animation phase float
rotation animation scale float
  • Unit: degrees
rotation animation center Point2D
Field Type Comments
x float
y float
zsprite radius scale float
physics constants Block?
  • HEK max count: 16

Acknowledgements

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

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