How to Run a Giveaway with Random Alerts in StreamElements
Want to run a giveaway on your stream where viewers actually see whether they won or lost — live, in real time? This guide shows you exactly how to build it in StreamElements using probability-based alert variations. You set the odds. Your viewers feel the suspense.
In StreamElements you can create multiple versions of the same alert called variations. When a viewer triggers an alert, StreamElements picks one variation to play based on the percentage you assign each one.
Set Fail to 99% and Win to 1% and you get a simple 1-in-100 system. Every trigger gets a result — most lose, a few win.
Key point: These percentages don't control how often the alert fires. The alert fires every time a viewer meets your trigger condition. The percentage only controls which variation plays when it fires.
What you'll need
- A StreamElements account
- Two alert files in .webm format — one fail, one win
- OBS or Streamlabs connected to StreamElements (optional for testing)
Don't have alerts yet? Pixels Lucky has ready-to-use fail and win animations pre-formatted for this exact setup.
Log into StreamElements. From the dashboard click My Overlays, then New Overlay.

Choose your overlay resolution. For most streamers this is 1920 × 1080. Select it and click Start.

Click Add Widget → Alerts → Alert Box. This creates the zone where your alerts will display on screen.

The alert box starts small by default. You need to make it fill the screen.
With the alert box selected, click Position, Size and Style and set Width to 1920 and Height to 1080. Then click Center Widget.

Click the gear icon on the alert box. You'll see a list of alert types. For this tutorial we're using Cheer (Twitch bits). Click the gear icon next to Cheer.

Before adding your variations, disable the default alert so it doesn't conflict with them.
- On the video preview, click the X to remove the existing video
- Click Clear Sound
- Set Alert Duration to 0

Still inside the Cheer settings, find and enable this toggle:
"Pick an alert randomly when more than one matches"
Turn it ON.

Click Variation Settings. StreamElements includes several default bit amount variations out of the box. You need to delete all of them — not just disable them.

Once the list is empty, click Add New Variation → Start with Blank.
Fill in the variation settings:
- Name: Fail
- Variation Parameter: Amount
- Condition: At Least
- Amount: 100 (or your chosen entry amount)
- Chance: 99

Now upload your alert: click Change Video and select your fail alert (.webm). Click Clear Sound unless your file has built-in audio. Under Layout select Text Over Image. Then set Alert Duration to match the length of your video file.
Click Save Variation.
Click Add New Variation → Start with Blank again. Fill in every setting the same way you did for the Fail variation, with these changes:
- Name: Winner
- Variation Parameter: Amount
- Condition: At Least
- Amount: 100 (same as your Fail variation)
- Chance: 1
- Video: your win alert (.webm)
- Layout: Text Over Image
- Alert Duration: match the length of your win video file

Click Save Variation.
Click Save on the overlay. Copy your overlay URL and add it as a browser source in OBS or Streamlabs.
Before testing, temporarily change your variation percentages to Fail: 50% and Win: 50%. At 1% odds you could fire the test trigger hundreds of times and never see the win animation — not because something is broken, but because that's how probability works. Each trigger is an independent roll. There's no counter, no memory, no guarantee of when it fires.
With it set to 50/50 you should see both animations appear within a few test triggers. Once you've confirmed both are working correctly, go back into your variation settings and set the percentages back to Fail: 99% and Win: 1% before going live.
Adjusting the Odds
You're not locked into 1%. Adjust the win percentage to match the value of your prize:
| Win % | Expected triggers before a win |
|---|---|
| 10% | ~10 |
| 5% | ~20 |
| 1% | ~100 |
| 0.5% | ~200 |
| 0.1% | ~1,000 |
Common Mistake — Alert Plays Every Time or Never Randomizes
If your alert fires on every trigger without variation, check two things:
- The default alert duration is set to 0 (Step 6)
- "Pick an alert randomly when more than one matches" is turned ON (Step 7)
These two settings are the most common reason the system doesn't work as expected.
Common Mistake — Donor Name or Amount Not Showing on Screen
If the alert fires correctly but the viewer's name or cheer amount isn't visible, the text is most likely positioned off-screen. This is a default margin issue inside StreamElements.
Open your variation and scroll down past the video and layout settings until you reach Text Settings. Click the Advanced tab and check the Margin values. If Top is set to a negative number like -50, the text is being pushed off the top of the screen.

Change the Top margin to a positive value — 100 is a good starting point — then save the variation. Test again and adjust until the text appears where you want it.

What's Next
Once this is running you can expand the system:
- Add a third "jackpot" variation with 0.1% odds for an ultra-rare win tier
- Run the same setup with subs, tips, or channel point redemptions instead of bits
- Swap in themed visuals for special events — holiday giveaways, milestone streams, charity fundraisers
Looking for ready-made fail and win animations built for this setup? Browse the full collection at Pixels Lucky.
Ready to go further? Learn how to build a multi-outcome system with weighted odds in the next tutorial: How to Set Up Random Alert Variations in StreamElements →