Skip to content

llMakeExplosion

Deprecated
void llMakeExplosion(integer Particles, float Scale, float Velocity, float Lifetime, float Arc, string Texture, vector Offset)

Make a round explosion of particles. Deprecated: Use llParticleSystem instead.

Make a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.

Parameters
Particles (integer)
Scale (float)
Velocity (float)
Lifetime (float)
Arc (float)
Texture (string)
Offset (vector)

Beginning in 1.14, the simulator uses llParticleSystem to emulate legacy llMakeExplosion particles. Here’s a working implementation:

fakeMakeExplosion(integer particle_count, float particle_scale, float particle_speed,
float particle_lifetime, float source_cone, string source_texture_id,
vector local_offset)
{
//local_offset is ignored
llParticleSystem([
PSYS_PART_FLAGS, PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_WIND_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,
PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,
PSYS_PART_START_ALPHA, 0.50,
PSYS_PART_END_ALPHA, 0.25,
PSYS_PART_START_SCALE, <particle_scale, particle_scale, 0.0>,
PSYS_PART_END_SCALE, <particle_scale * 2 + particle_lifetime, particle_scale * 2 + particle_lifetime, 0.0>,
PSYS_PART_MAX_AGE, particle_lifetime,
PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>,
PSYS_SRC_TEXTURE, source_texture_id,
PSYS_SRC_BURST_RATE, 1.0,
PSYS_SRC_ANGLE_BEGIN, 0.0,
PSYS_SRC_ANGLE_END, source_cone * PI,
PSYS_SRC_BURST_PART_COUNT, particle_count / 2,
PSYS_SRC_BURST_RADIUS, 0.0,
PSYS_SRC_BURST_SPEED_MIN, particle_speed / 3,
PSYS_SRC_BURST_SPEED_MAX, particle_speed * 2/3,
PSYS_SRC_MAX_AGE, particle_lifetime / 2,
PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>
]);
}

When migrating from llMakeExplosion to the llParticleSystem emulation, be aware of these differences:

  1. Particle Lifetime: The original llMakeExplosion had random particle lifetime, which cannot be created in the current particle system via a single call
  2. Particle Growth: The original had continual particle growth throughout its lifetime, ending well past the 4m limit of the current system on long-lived particles
  3. Arc Orientation: The ‘arc’ parameter in the original oriented along the X axis, while the current particle system’s angles orient along the Z axis
  4. Value Scaling: Several values are not taken ‘verbatim’ in the original particle system (velocity is not m/sec, and particle count may vary), approximated via basic divisors
  5. Local Offset: There is no way to duplicate the offset from the old functions within the new particle system