Engine

Using Particles for Explosions

Previously, you worked with particles that played continuously, like smoke from a volcano. Particles can also be used in a single burst, such as explosions. This tutorial will show you how to create a trap that emits a burst of particles and kills a player.

Emitter Setup

The explosion will use a ParticleEmitter with some changed properties that will create a burst.

  1. Design a dangerous looking trap. Then, insert a ParticleEmitter named Explosion into the part.

  2. Create an electric spark effect using these properties.

    PropertyValueDescription
    Texturerbxassetid://6101261905Electric spark texture.
    Drag10How fast particles lose speed.
    Lifetime0.2, 0.6Makes explosion particles exist for a short time.
    Speed20, 40Compensates for the short lifetime.
    SpreadAngle180, 180Fires particles in all directions.
  3. So the trap doesn't emit particles constantly toggle Enabled to off.

    alt

Testing Particle Bursts

To test the particle burst, you can use a Studio plugin developed by Roblox.

  1. Go to the Marketplace page for the Emit() Plugin Plugin. On that page, click the Install button.

    alt

  2. When Studio opens, the plugin should install automatically.

    alt

  3. Select the Explosion emitter and notice the plugin UI that appears in the top left of the game window. In the number box, type 100 (the amount of particles to emit) and press Enter.

    alt

  4. Press the Emit button to test the emitter.

Color and Transparency

Some extra steps can make the explosion look more impressive.

  1. Open the sequence window for the emitter's Color by clicking the three dots next to the property. Then, create keypoints in the window to make a color gradient.

    alt

  2. For Transparency, use a number sequence that increases transparency over a smooth curve to show a gradual fade out.

    alt

    A finished particle effect may look like below.

    alt

Script Setup

With the emitter complete, the explosion can now be played through a script. The script works by checking for players touching the trap. Whenever it detects someone, the particles will emit and the player will die.

  1. In the trap part, add a new Script named PlayExplosion.

    alt

  2. Set up variables to store the part and emitter. Then, include a variable named EMIT_AMOUNT that stores the number of particles emitted per explosion.


    local trapObject = script.Parent
    local particleEmitter = trapObject.Explosion
    local EMIT_AMOUNT = 100
  3. Code an event to check if a Humanoid touches the part. If so, set that humanoid's health to 0, forcing them to respawn.


    local trapObject = script.Parent
    local particleEmitter = trapObject.Explosion
    local EMIT_AMOUNT = 100
    local function killPlayer(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid then
    humanoid.Health = 0
    end
    end
    trapObject.Touched:Connect(killPlayer)

Play the Explosion

In scripts, particles are emitted using the Emit() function. This creates a one-time burst of a number of particles.

  1. Call the Emit() function and pass in EMIT_AMOUNT, the variable created earlier.


    local trapObject = script.Parent
    local particleEmitter = trapObject.Explosion
    local EMIT_AMOUNT = 100
    local function killPlayer(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid then
    humanoid.Health = 0
    particleEmitter:Emit(EMIT_AMOUNT)
    end
    end
    trapObject.Touched:Connect(killPlayer)
  2. Test the script by walking into the trap.

With just a few changes to the example in this tutorial, you can create a variety of different effects. Some alternatives include sparkles for gathering collectable objects, or explosions to indicate a projectile's impact.