StreamElements overlay widgets for YouTube and Twitch streams. This collection includes multiple interactive widgets for subathons, progress tracking, milestones, and surprise quests.
A countdown/countup timer for subathon streams with:
- Configurable time values for different event types (subs, bits, tips, etc.)
- Powerup mode for temporary multipliers
- Sleep mode with reduced multiplier
- Timer cap and lock features
- Ko-fi integration
- Confetti effects on milestones
- Audio feedback
An animated progress bar that tracks points/goals:
- Real-time progress tracking
- Customizable point values per event
- Stack or wide display styles
- Milestone-based or custom data tracking
- Manual point adjustments via commands
Display and track milestone goals with rewards:
- Up to 50 configurable milestones
- Mystery/revealed goal modes
- Particle effects on completion
- Auto-scrolling goal display
- Stretch goals support
Random timed challenges for viewer engagement:
- Random quest selection from pool
- Countdown timer with warnings
- Point-based completion tracking
- Success/failure states with effects
- Configurable quest pool and timings
Visit your StreamElements overlay editor:
- Link: https://streamelements.com/overlay/68e88eb4d756efb257797d21/editor?er=1
- Or create a new overlay at StreamElements Dashboard
- Click "Add Widget" in the overlay editor
- Select "Custom Widget" from the widgets list
- Choose the widget you want to add
For each widget folder (e.g., subathon-timer/):
- HTML Tab: Copy contents from
widget.html - CSS Tab: Copy contents from
widget.css - JS Tab: Copy contents from
widget.js - Fields Tab: Copy contents from
fields.json - Settings Tab: Configure widget settings as needed
- Click "Save" in the overlay editor
- Position and resize the widget on your overlay
- Test with StreamElements test events
- Modern web browser (Chrome, Firefox, Edge recommended)
- Local web server (or use Live Server extension in VS Code)
-
Clone the repository:
git clone https://github.com/mr-shade/megathon-widget.git cd megathon-widget -
Open the preview:
- Navigate to the
preview/folder - Open
index.htmlin a browser (via local server)
Option A - Using Python:
python3 -m http.server 8000 # Then visit http://localhost:8000/preview/Option B - Using Node.js:
npx http-server -p 8000 # Then visit http://localhost:8000/preview/Option C - VS Code Live Server:
- Install "Live Server" extension
- Right-click
preview/index.htmlโ "Open with Live Server"
- Navigate to the
-
Use the preview:
- Select a widget from the dropdown
- Use the Event Simulator to test events
- Check browser console for debug logs
- Storage is persisted in localStorage
- โ Widget selector (all 4 widgets)
- โ
Mock StreamElements API (
SE_API) - โ Event simulator (subs, bits, tips, follows, raids)
- โ Local storage persistence
- โ Reload/clear storage controls
- โ Theme toggle for testing on different backgrounds
Configure time/point values for different event types:
- Twitch: Subscribers (T1/T2/T3), Gift subs, Bits, Tips, Follows, Raids
- YouTube: Memberships, Superchats
- Ko-fi: Tips and Subscriptions
Most widgets support chat commands for control:
- Timer:
!resume,!pause,!add [time],!subtract [time],!lock,!unlock - Progress:
!addpoints [n],!subtractpoints [n],!setpoints [n],!resetpoints - Milestones:
!addgoal [number] [reward],!removegoal [number],!resetgoals - Quests:
!questson,!questsoff
Configure who can use commands:
- Broadcaster (always allowed)
- Moderators (toggle)
- Specific users (whitelist)
megathon-widget/
โโโ README.md
โโโ preview/
โ โโโ index.html # Local preview interface
โ โโโ mock-se-api.js # Mock StreamElements API
โโโ subathon-timer/
โ โโโ fields.json # Widget configuration fields
โ โโโ widget.html # Widget HTML structure
โ โโโ widget.css # Widget styles
โ โโโ widget.js # Widget logic
โโโ progress-bar/
โ โโโ fields.json
โ โโโ widget.html
โ โโโ widget.css
โ โโโ widget.js
โโโ milestone-goals/
โ โโโ fields.json
โ โโโ widget.html
โ โโโ widget.css
โ โโโ widget.js
โโโ suprise-quest/
โโโ fields.json
โโโ widget.html
โโโ widget.css
โโโ widget.js
All widgets use these external libraries (loaded via CDN):
- jQuery 3.2.1 - DOM manipulation
- Flatline Functions - https://flatline.tv/widgets/flatline-functions.js
- Helba Event Bridge - https://eb.helba.ai/client.js
- Koofee Client - https://koofee.helba.ai/static/client.js
- Megathon Client - https://megathon.helba.ai/static/client.js (timer only)
- Particles.js - https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js (milestones only)
Edit the CSS file for each widget:
- Timer:
.timer,.bubble,.statusclasses - Progress:
.progress-belt,.bar,.countclasses - Milestones:
.reward,.bubbleclasses - Quest:
.quest,.quest-titleclasses
Use the StreamElements overlay editor's "Settings" tab or edit fields.json:
- Find the value field (e.g.,
valuesSubsTier1) - Change the default
valueproperty - Time format:
"60s","5m","1h" - Point format: integer numbers
Update audio paths in fields.json or settings:
- Upload audio files to a public URL
- Update the audio path fields
- Supported formats: MP3, WAV, OGG
- Check browser console for errors
- Verify all external scripts are loading
- Ensure StreamElements overlay is set to the correct size
- Check widget CSS
displayandopacityproperties
- Verify StreamElements test events are working
- Check if widget has loaded fully
- Look for JavaScript errors in console
- Ensure
SE_APIis available
- Clear browser cache and reload
- Check localStorage permissions
- Verify StreamElements store API calls in console
- Make sure you're using a local server (not
file://) - Check that external CDN scripts can load
- Verify
mock-se-api.jsloads before widget scripts
Feel free to submit issues and enhancement requests!
This project is provided as-is for StreamElements overlay use.
- StreamElements Overlay Editor: https://streamelements.com/overlay/68e88eb4d756efb257797d21/editor?er=1
- GitHub Repository: https://github.com/mr-shade/megathon-widget.git
- StreamElements Dashboard: https://streamelements.com/dashboard
Made with โค๏ธ for the streaming community