BROWSER SOURCE TWITCH YOUTUBE DLL REQUIRED

A fully customizable, fully featured Subathon widget for Twitch & YouTube. Includes subs, bits, donations, follows, raids, channel- and even loyalty points & more. Comes with an OBS dock and an editor right inside the overlay. Powered by Streamer.bot.

  • Customize time additions for every event
  • Drag, scale and restyle every part right on the overlay
  • OBS dock to start, pause, add time and fix counters
  • Goals per event, or one combined goal for all of them
  • Enable Happy Hours for extra contributions!
  • Reliable tracking with automatic backups
  • Supported almost all events:
Subathon in action

Quick Access

Copy what you need to get started. Follow the setup guide below for detailed instructions.

Browser Source URL

Add this as a browser source to OBS.
https://tawmae.xyz/overlays/subathon

OBS Dock URL

Add this as a custom dock to OBS.
https://tawmae.xyz/overlays/subathon-dock

Action Import String

Import the actions into Streamer.bot.

Updating? Copy this again, re-import it and re-enable your commands. How to update

How to update
Loading…

Setup Guide

1

Copy the Action Import String

Copy the Action Import text from Quick Access.

2

Import the actions into Streamer.bot

In Streamer.bot click Import in the top menu. Paste the text into the Import String field. Click Import at the bottom.

3

Enable the Commands

Open the Commands tab. Find the imported group. Right-click the group and click Enable All.

4

Open the Settings UI once and hit Save

Open the action [SUBATHON] #0 - Settings. Right-click the Test trigger and hit Test Trigger. Click Save. Nothing adds time until you have saved once.

NoteIf the TawmaeUI.dll is missing, you'll be asked to auto-download. That popup window may appear behind the Streamer.bot window, so make sure to check if nothing appears.
5

Start WebSocket Server

Go to the tab Servers/Clients → WebSocket Server. Enable Auto Start WebSocket Server. Address 127.0.0.1. Port 8080. Optional password. Leave Enforce All Requests unchecked. Start the server.

6

Copy Browser Source URL

Copy the Browser Source URL from Quick Access.

7

Add Browser Source in OBS

In OBS create a new Browser Source. Paste the URL. Set Width and Height to your OBS canvas size (1920x1080) instead of scaling the overlay in OBS.

WarningIf you want to have the browser source in multiple scenes, don't create a second browser source. Instead, use nested scenes or source clones.
8

Make it look like yours

Right-click the browser source in OBS, choose Interact and press S. Drag every part where you want it, pick your font, colours and icons, write your goals and rotator lines. Press Ctrl+S to save. See Overlay Settings below for the individual tabs.

WarningThe editor is drawn inside the browser source, so your viewers see it too. Lay the overlay out off air, or open the overlay URL in a normal browser and press S there.
9

Add the dock to OBS

Copy the OBS Dock URL from Quick Access. In OBS, go to Docks → Custom Browser Docks, name it Subathon and paste the URL. Hit Apply and put the dock wherever you want.

Using a different WebSocket address, port or a password? Add ?address=127.0.0.1&port=8080&password=YOUR-PASSWORD to the URL and adjust the values to match your server. Leave out the password part if you do not use one. The same goes for the browser source.

10

Done!

Hit the big play button in the dock and the Subathon is running. Keep Streamer.bot open: it owns the timer, while the overlay and the dock show and control it.

NoteDonations require connecting your chosen platform (Ko-fi, StreamElements, Streamlabs, Fourthwall, TipeeeStream, Throne) to Streamer.bot. Once connected the Subathon picks them up automatically.

Commands

!subathonStart Access Mods Only

Start the subathon. After an end, it picks the same run back up with the time it had left.

Example!subathonStart
!subathonPause Access Mods Only

Pause the subathon timer.

Example!subathonPause
!subathonUnpause Access Mods Only

Resume the subathon timer.

Example!subathonUnpause
!subathonAddTime [Duration] Access Mods Only

Manually add time. Takes plain seconds (900), units (10s, 15m, 5h, 1d, also combined like 1h30m) or a timestamp (05:00 is 5 minutes, 01:30:00 is 1 hour and 30 minutes).

Example!subathonAddTime 1h30m
!subathonRemoveTime [Duration] Access Mods Only

Manually remove time from the timer. Same formats as adding time.

Example!subathonRemoveTime 1h
!subathonAddEvent [Event] [Amount] Access Mods Only

Manually increase an event count. Available keys: prime; t1 (or tier1, subs); t2; t3; memberships; bits; donations; charity; follows; channelpoints (or cpr); raids; points (or loyalty); combined (or cg).

Example!subathonAddEvent bits 500
!subathonRemoveEvent [Event] [Amount] Access Mods Only

Manually decrease an event count to correct mistakes. Same event keys as adding.

Example!subathonRemoveEvent donations 10
!subathonContributePoints [Amount] Access Everyone

Spend Loyalty Points to add time.

Example!subathonContributePoints 1000
!subathonStartHappyHour Access Mods Only

Starts the happy hour.

Example!subathonStartHappyHour
!subathonEndHappyHour Access Mods Only

Ends the happy hour before its time runs out.

Example!subathonEndHappyHour

Settings UI

General

Only the things you can't judge by looking at the overlay live here. Fonts, colours, goals, the rotator and every text moved into the overlay itself, see Overlay Settings below.

  • Starting Time How much time the countdown starts with. The dock can override it for a single run.
  • Currency The currency to count donations in. Donations from other currencies get auto-converted.
  • Enable Time Limit Cap how much time contributions can add in total. Once the cap is reached, nothing adds any more.
  • Maximum Added Time The cap itself. Only counts time added by events, not the starting time.
  • Happy Hour Multiplier Extra time for every contribution during a happy hour. 1 means 100%, so double the time. 0.5 is +50%, etc. I'm sure you'll manage with basic math.
  • Happy Hour Duration How long a happy hour lasts, in seconds. It ends itself once the time runs out.
  • Affect Combined Goal Points Whether the happy hour multiplies the combined goal points as well.

Added Time

Define which events add time and how many seconds they add. Every event has its own on/off switch.

  • Twitch Prime, Tier 1, Tier 2, Tier 3 Subberinos.
  • YouTube Memberships Memberships, gifted memberships and member milestones.
  • Bits Proportional, per 100 bits, with an optional minimum cheer. Also lets you set your price for Power-Ups, so they contribute accordingly as well :3
  • Donations Currency-awareeee, proportional. Covers Ko-fi, Streamlabs, StreamElements, Fourthwall, TipeeeStream, Throne, YouTube Super Chats and Super Stickers. Twitch charity donations get their own slider.
  • Follows You better have my MOD TOOLS installed to disable the Subathon Event Handler in case you get follow botted D:
  • Raids Per 10 raided viewers, or the same time for every raid. Will you set a minimum viewer amount and exclude the poor 1-viewer-raids? :(
  • Channel Point Rewards Proportional per 1000 channel points, and only the rewards you pick contribute.
  • Loyalty Points Proportionallllll too, with an optional minimum. Used with the contribute command.

Combined Goal

Turns every contribution into one shared pool of points, so a goal can be reached by any mix of subs, bits and donations. The goals themselves are set in the overlay.

  • Enable Combined Goal Track combined goal points at all.
  • Points Per Event How many points each event type is worth, each with its own switch. Decimals work, so every 100 bits add exactly what you set, however they were cheered.

Chat Responses

Edit chat responses. Use a single hyphen to skip a message. The variables you can use are listed below each textbox. Reset Chat Responses at the bottom brings back the default wording.

Advanced

Safety toggles and backups.

  • Safety Pause If your stream ends, OBS disconnects or Streamer.bot closes, it'll auto-pause the Subathon for you.
  • Only Add When Live Don't forget to tick it off when testing the widget off stream.
  • Add Time While Paused If unchecked, events are skipped while paused. I wouldn't recommend it though.
  • Ignore Test Triggers Also affects simulated triggers, so might be worth switching on once you're done testing.
  • Create Local Backups Writes a backup into your Streamer.bot folder every 15 minutes while contributions come in, plus one whenever you end or reset the Subathon or it finishes.
  • Restore Backup Restore a backup and seamlessly carry on where you left off.

Overlay Settings

Arranging on the canvas

Right-click the OBS browser source, choose Interact and press S to open the editor. Save with Ctrl+S, Escape closes it.

The timer, rotator, goals, happy hour bar, status bar and contribution flash are six separate parts. Click one to select it and drag it wherever you want. The green corner scales it, the amber bar on the right sets its width and the amber bar under the goals sets how many goals show at once. Once a part is selected, the texts and icons inside it get purple outlines, so you can move and resize those too.

Drag a box across empty canvas or hold Ctrl to grab several parts at once. Arrow keys nudge, Ctrl+Z and Ctrl+Y undo and redo, F hides the outlines. Parts that are empty right now show a faded example while the editor is open, so you can still place them.

Elements

An eye to show or hide each part, and the same for every text and icon inside the selected one, each with a button to put it back where it started.

Below that: the time format, the timer title, the status bar texts, the happy hour label and how long the contribution flash stays on screen.

Content

The rotator: how long each slide stays, whether the live counters show up, and your own lines with an icon each. Lines understand %startedAt%, %endsAt%, %totalPoints% and %remaining%.

The goals: tie each goal to an event or to the combined goal and it ticks itself off once reached. Reached goals get struck through and move to the bottom. A reached goal also fires Subathon Goal Reached in Streamer.bot.

Style

Font, colours, background, corners, border, shadows and the icon for every event.

Pick a Google font from the list or type any font installed on your PC. Icons can be searched right inside the editor (every icon on Iconify), picked from your uploads, or pasted as an icon name like mdi:heart or any image URL.

Files

Use your own images as icons. Connect your tawmae.xyz File Upload API key (Account → API Keys) to reach your files. Upload new files with the overlay URL open in a normal browser, then pick them inside OBS.

The cog in the editor header shows what the overlay currently sees, exports and imports the design as JSON, stacks the parts again and resets everything.

OBS Dock

Run the Subathon from OBS

Add the OBS Dock URL from Quick Access through Docks → Custom Browser Docks. The dock also works in a regular browser connected to Streamer.bot.

The clock sits on top with what the Subathon is doing right now, when it ends, how much was added and how long it was paused. The big button starts, pauses and resumes. The buttons next to it take time off and add time, pick how much with the row below: 1m, 5m, 10m, 30m or 1h.

The eye shows or hides the overlay, the party popper starts a happy hour (or ends the running one) and the disk writes a backup. End and Reset on the right need two clicks, so a stray click can't wipe anything. End keeps every counter and Start picks the same run back up; Reset clears everything.

Counters

Every event with its count and a - / + to fix one that drifted. Choose how much those buttons change it by at the top of the list.

Set the clock

For exact corrections. Type 1h30m, 01:30:00 or a number of seconds, then Add, Take off, Set time left or Set start time.

A red dot in the header means Streamer.bot isn't connected. The version next to the name is the version of your actions, it turns yellow with a link when a newer one is out.

Custom Triggers

Subathon Finished

Fires when the countdown reaches 00:00:00. Found in the Subathon folder of the trigger picker.

%startedAt_Unix% Type: long

Unix timestamp when the subathon started.

%endedAt_Unix% Type: long

Unix timestamp when the subathon ended.

%baseSeconds% Type: int

Starting time in seconds.

%addedSecondsTotal% Type: int

Total seconds added during runtime.

%pausedSecondsTotal% Type: int

Total paused duration in seconds.

%elapsedSeconds% Type: int

Total seconds the timer ran.

%elapsedFormatted% Type: string

Elapsed time formatted (hh:mm:ss).

%remainingSeconds% Type: int

Seconds left at that moment.

%subs% Type: int

Total Twitch subs, all tiers.

%memberships% Type: int

Total YouTube memberships.

%bits% Type: int

Total bits counted.

%donations% Type: double

Total donations counted.

%charitydonations% Type: double

Total charity donations counted.

%follows% Type: int

Total follows.

%raids% Type: int

Total raids.

%channelpoints% Type: int

Total channel points counted.

%loyaltypoints% Type: int

Total loyalty points counted.

%combinedGoalPoints% Type: double

Combined goal points.

%secondsAdded_<event>% Type: int

Seconds added per event: primesubs, t1subs, t2subs, t3subs, youtubememberships, bits, donations, charitydonations, follows, channelpointrewards, raids, loyaltypoints.

Example secondsAdded_t1subs

Subathon Ended Manually

Fires when somebody ends the subathon from the dock or by command.

%startedAt_Unix% Type: long

Unix timestamp when the subathon started.

%endedAt_Unix% Type: long

Unix timestamp when the subathon ended.

%baseSeconds% Type: int

Starting time in seconds.

%addedSecondsTotal% Type: int

Total seconds added during runtime.

%pausedSecondsTotal% Type: int

Total paused duration in seconds.

%elapsedSeconds% Type: int

Total seconds the timer ran.

%elapsedFormatted% Type: string

Elapsed time formatted (hh:mm:ss).

%remainingSeconds% Type: int

Seconds left at that moment.

%subs% Type: int

Total Twitch subs, all tiers.

%memberships% Type: int

Total YouTube memberships.

%bits% Type: int

Total bits counted.

%donations% Type: double

Total donations counted.

%charitydonations% Type: double

Total charity donations counted.

%follows% Type: int

Total follows.

%raids% Type: int

Total raids.

%channelpoints% Type: int

Total channel points counted.

%loyaltypoints% Type: int

Total loyalty points counted.

%combinedGoalPoints% Type: double

Combined goal points.

%secondsAdded_<event>% Type: int

Seconds added per event: primesubs, t1subs, t2subs, t3subs, youtubememberships, bits, donations, charitydonations, follows, channelpointrewards, raids, loyaltypoints.

Example secondsAdded_t1subs

Subathon Time Added

Fires whenever a contribution adds time.

%eventKey% Type: string

The event that added time (t1subs, bits, donations, etc.).

%addedCount% Type: double

Units in this event (e.g. 3 subs, 500 bits, 4.20 donated).

%addedSeconds% Type: int

Seconds added by this event.

%addedFormatted% Type: string

Added time formatted (hh:mm:ss).

%totalCount% Type: double

Total count for this event type so far.

%currentSeconds% Type: int

Remaining seconds after the addition.

%currentTimestamp% Type: string

Remaining time in your chosen time format.

Subathon Goal Reached

Fires when a goal's counter passes its amount.

%goalName% Type: string

The goal's text.

%goalType% Type: string

What the goal counts (subs, bits, donations, combinedgoal, etc.).

%goalTarget% Type: double

The goal's amount.

%goalCount% Type: double

The count that reached it.

Subathon State Changed

Fires on start, pause, resume, end, reset, a manual time change, a counter change and a happy hour.

%subathonChange% Type: string

What changed: started, paused, resumed, ended, reset, time, event or happyhour.

FAQ & Examples

Does the time stop when the overlay is not active?
No. Time is handled purely by Streamer.bot. The overlay reflects the data Streamer.bot provides. Use the pause action in Streamer.bot if you want to pause.
Does the Subathon timer automatically pause when I stop streaming?
Yes, at least if you did not disable "Safety Pause" in the settings. Whenever you close Streamer.bot or stop streaming, it will automatically pause for you, in case you forget. If your PC crashes however, it will not pause it. In any case though, best practice is to manually make sure you always pause it yourself.
Can I restore progress if something breaks?
Yes. Automatic backups are created every 15 minutes while active and if you decide to manually end or reset it (unless you have disabled that settings). To restore from a backup, go iin the Settings UI → Advanced tab and select a backup file. This restores timer state and event counts. There is also a separate folder with event count backups, in case you need to check how many subs etc. you have received.
Are goals like donations, bits, channel points, and loyalty points added proportionally?
Yes. Proportional addition applies unless you set a minimum amount.
What if someone donates a currency that is inflated as heck?
Donations are automatically converted into your selected currency before adding time.
Can I swap the symbols for thousands separators and decimal places?
Yes, simply add the parameter ?reverseDecimals=true at the end of the URL.
Are combos supported?
Yes. While Streamer.bot doesn't handle combos yet, you can use the workaround action to add time to your Subathon timer and Goalbar goals. For more details, check the discord post below:

tawmae discord (Twitch Combo Support)

Changelog

v2.0.0 latest

  • New Added new OBS dock
  • Changed Overlay is now fully customizable via its own settings panel; accessible by pressing `S` on the browser source; removed customization optioms from the Settings UI
  • Changed Combined goals are now toggleable and allow for decimals

v1.0.3

  • New Added support for local fonts
  • Fix Fixed combined goals not crossing off correctly

v1.0.2

  • New Added support for Custom Power Ups (Twitch)

v1.0.1

  • Fix Pausing not applying correctly; silently being resumed
  • Fix Remove Time Command wasn't applying timestamps correctly

v1.0.0

  • New Re-Release with YouTube support

User Reviews

5.0 (7 reviews)

Taw products are just superior, not only this beautifull addons, but all of them. He's an extremely precious resource for the streaming community / development. Good job dear!

Absolutly love this one! Tawmae is the goat! Tawmae always delivers perfection!

Just on point when I was looking for a Subathon widget — tawmae delivered! Works flawlessly. Love it!!

Before you post your review

Please make sure this is not a support issue. If you have trouble getting it to work, join my Discord, open a support post and attach your logs.

Join the Discord for support ↗