Plugin — Donation Timer (Sub-a-thon)
Donation Timer is a countdown timer built for Sub-a-thon streams — every donation adds time at a rate you set (e.g. ฿1 = 1 minute). When the timer hits zero, the stream ends.
It comes with a separate widget you can add to OBS, plus manual +1m / +5m / +10m buttons for those special-case bumps.
What you'll need
- A rate (time per currency unit, e.g. 60 seconds per ฿1)
- A starting time (e.g. 4 hours = 14400 seconds)
- (Optional) a max cap so the timer can't grow forever
- OBS open if you want to add the widget
Step 1 — Enable the Donation Timer plugin
- Go to the Plugins page (sidebar)
- Pick the Donation Timer tab
- Flip the Enable toggle at the top
Step 2 — Set the basics (Initial / Rate / Max)
Fill in:
- Initial Time (seconds) — your starting time, e.g. 14400 = 4 hours
- Rate per unit — seconds per ฿1, e.g.
60means ฿1 = 1 minute - Max Cap — the highest time the timer is allowed to reach (use
0= unlimited) - Min Amount — donations below this don't add time
:::tip How to figure out the rate
"฿1 = 1 minute" → use rate 60 (seconds)
"฿10 = 1 minute" → use rate 6 (1 baht = 6 seconds)
:::
Step 3 — Customize the style
Match it to your stream theme:
- Title text + size + color (e.g. "SUB-A-THON")
- Font family + size + weight + color of the countdown number
- Background color + opacity
- Border color / width / radius
- Text shadow (toggle)
- End text — what shows when the timer ends (e.g. "Time's up!")
- Image — image/GIF inside the widget (position + size + padding)
- Padding for the whole container
Step 4 — Copy the Timer Widget URL → add to OBS
- Find the Timer Widget URL section
- Click Copy
- In OBS → + Sources → Browser
- Paste the URL → set Width / Height as needed
- Click OK → drag into position in your scene
Widget URL: http://localhost:3001/timer
Step 5 — Start the timer + test
- Click Start at the top to begin the countdown
- Send a test donation from the Test Panel — confirm time goes up at the right rate
- Use +1m / +5m / +10m buttons for special manual adds (e.g. thanking a moderator)
- Pause / Resume / Stop during breaks or when the stream wraps up
Tips & Troubleshooting
- Timer doesn't add time on donation: check the Enable toggle is on, the amount clears Min Amount, and the timer is Running (not paused).
- Timer hit Max Cap: that's by design — once at the cap, donations stop adding time. Set cap = 0 if you don't want a limit.
- OBS widget not updating: Socket.io syncs in real time — if it gets stuck, refresh the browser source in OBS.
- Want a bigger countdown number: increase the font size, and bump up the Browser Source Width in OBS so it fits.
- Reset timer for a new stream: Stop → change Initial Time → Start again.
:::warning Don't change the rate mid-stream If you change the rate during a live stream, every new donation uses the new rate immediately (it doesn't go back and recompute) — lock the rate in before you start. :::