Pyrotechnic Pyrotechnics: The Double-Bang Firework
Pyrotechnic Pyrotechnics: The Double-Bang Firework
Let’s be honest: a single pop isn’t a celebration, it’s a cough. If you want your Fortnite island to feel like the Grand Finale at a major tournament, you need that satisfying, two-stage "boom-shhhhh" that leaves trails of light hanging in the air. We’re going to build a firework that doesn’t just flash and die—it explodes into a cloud of sparks, then lingers with trailing ribbons of color that follow those sparks as they drift away. It’s the visual equivalent of a high-five after a victory royale.
What You'll Learn
- Emitter Stacks: How to group visual effects so they act as one unit (like a squad).
- Particle Tracking: Using "Persistent IDs" to make one effect follow another (like a tag-along pet).
- Ribbon Particles: Creating those smooth, trailing lines that make explosions look expensive.
- Event Generation: Triggering a second effect based on the position of the first.
How It Works
Think of a firework explosion in Niagara (the visual effects editor inside UEFN) like a choreographed dance routine. Most beginners just make the dancers appear and then disappear. That’s boring. We want a routine with two acts.
Act 1: The Burst. When the firework reaches its peak, it spawns a bunch of small, colorful dots (sprites). These dots shoot outward in a circle, mimicking the initial flash of light. In programming terms, this is our primary particle system.
Act 2: The Trail. Here’s where the magic happens. We don’t want those dots to just vanish. We want to draw a line behind each one as it moves, like a comet tail or a sparkler. To do this, we need a second emitter (a group of particles) that knows exactly where the first emitter’s particles are.
The secret sauce is called a Persistent ID. Imagine every spark in Act 1 gets a temporary nametag with a unique number. Act 2 reads those nametags and says, "Oh, you’re Spark #42? I’ll spawn a ribbon right behind you." Without this ID system, Act 2 would just spawn ribbons in a random blob, looking like a glitchy mess rather than a beautiful explosion.
So, the plan is:
- Copy our existing explosion effect.
- Tell the original explosion to shout out its location every frame.
- Tell the copy to listen for that shout and draw ribbons at that exact spot.
Let's Build It
We are going to modify our existing firework system. If you haven’t built the first part (the basic firework launch and initial burst), go do that first. This tutorial assumes you have a working "Explosion" emitter stack that already creates the initial burst of sparks.
Step 1: Duplicate the Effect
Open your Niagara System (the visual effects editor). You should see your Explosion emitter stack.
- Click on the Explosion emitter stack in the hierarchy (the list on the left).
- Right-click and select Copy.
- Right-click in the empty space of the hierarchy and select Paste.
- UEFN will automatically rename this new stack to
Explosion001. Rename it toTrailorRibbonEffectif you want to be organized, butExplosion001works fine for now.
Why? We are cloning the base behavior so we don’t have to rebuild the explosion from scratch. We’re just going to change how it looks.
Step 2: Link the Two Effects (The "Tag-Along" Logic)
Now we need to teach the new effect to follow the old one.
- Select the original
Explosionemitter (the first one). - In the Details panel (usually on the right), look for the Particle Update section.
- Click the Plus (+) icon next to Particle Update.
- Select Generate Location Event.
What just happened? You just told the first explosion: "Every time a particle moves, broadcast its position to the universe." This is like the sparkler shouting, "I am here!"
- Crucial Step: Look at the Properties section for this new event. Ensure Requires Persistent IDs is checked/enabled.
- Game Analogy: This is the nametag. If this is off, the sparkler is shouting "I am here!" but no one knows which sparkler is speaking. With it on, it shouts "Spark #42 is here!"
Step 3: Configure the Ribbon Effect
Now, let’s make Explosion001 actually look like a trail.
- Select the new
Explosion001emitter. - In the Module list (the big list in the middle), find Spawn or Update modules. We want to change the particle type.
- Look for the Particle Type or Renderer module. Change it from Sprite (the flat dots) to Ribbon (or Trail).
- Note: If you don’t see Ribbon, look for Trail Renderer.
- Adjust the Color module. Make it vibrant! Gradient colors work best.
- Adjust the Lifetime. Ribbons need time to form. Give them a slightly longer lifetime than the initial sparks, or they’ll vanish too fast to see the trail.
- The Connection: Find the module that controls where these particles spawn. You want to link it to the Location Event we generated in Step 2.
- Look for a module called Event or Spawn from Event.
- Set the Event to the Generate Location Event you created on the first emitter.
- Ensure Persistent ID is set to match. This tells the ribbon: "Spawn exactly where the spark with this ID is."
Step 4: Polish the Look
Right now, you might have ribbons spawning on top of the sparks. That’s fine, but let’s make it pop.
- Go back to the original
Explosionemitter. - Slightly reduce its Alpha (transparency) or Size if it’s too bright, so the ribbons stand out.
- In
Explosion001(the ribbon emitter), tweak the Spread. You want the ribbons to follow the spark, not shoot out in a new direction. Set the velocity to Zero or very low. The ribbon should just appear where the spark is, not move itself.
Step 5: Test It
Hit Play in the editor. Watch your firework.
- It launches.
- It bursts into sparks (Act 1).
- As the sparks drift and fall, colorful ribbons should stretch out behind them, creating a comet-tail effect (Act 2).
If the ribbons look weird or disconnected:
- Check that Requires Persistent IDs is on in Step 2.
- Make sure the ribbon emitter is listening to the correct event.
- Ensure the ribbon’s Lifetime is long enough to see the trail.
Try It Yourself
You’ve got the basic double-bang working. Now, make it yours.
Challenge: Change the color of the ribbons based on the original spark’s color.
- Hint: In the
Explosion001(ribbon) emitter, look for a Color module. Can you link it to the Color output of the original spark? Or, try making the ribbons shrink as they get older (fade out) by adjusting the Alpha over lifetime.
Recap
We turned a basic pop into a pro-level visual by using two emitters. The first creates the sparks and broadcasts their locations using Persistent IDs. The second listens to those broadcasts and draws ribbons at those exact spots. It’s simple chain-reaction logic, but it makes your island look like it cost millions in V-Bucks.
References
- https://dev.epicgames.com/documentation/en-us/fortnite/creating-fireworks-5-making-the-second-firework-explosion-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/en-us/fortnite/creating-fireworks-using-niagara-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/en-us/uefn/making-the-second-firework-explosion-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/en-us/uefn/making-the-first-firework-explosion-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/en-us/fortnite/creating-fireworks-4-making-the-first-firework-explosion-in-unreal-editor-for-fortnite
Turn this into a guided course
Add 5. Making the Second Firework Explosion to your free study plan — we'll suggest related pages and stitch the lot into one compile-checked, self-guided lesson with worked examples and quizzes.
References
- creating-fireworks-5-making-the-second-firework-explosion-in-unreal-editor-for-fortnite ↗
- creating-fireworks-using-niagara-in-unreal-editor-for-fortnite ↗
- 5. Making the Second Firework Explosion ↗
- 4. Making the First Firework Explosion ↗
- creating-fireworks-4-making-the-first-firework-explosion-in-unreal-editor-for-fortnite ↗
Original tutorial generated by Verse Island from the Verse/UEFN knowledge base, with references to the Epic Games sources above. Code is validated against the knowledge base.