Skip to main content

Subathon v2.3.2 (latest)

Installation

Pre-requisites

Importing the code

  1. Download the .sb import code by purchasing through https://shop.rondhi.com

  2. In Streamer.bot, open the Import Dialog

  3. Open the folder where you saved the import code then drag-and-drop the .sb file into the Import String box

  4. Click Import

  5. Upon importing, Streamer.bot will ask if you would like to auto-run an action. I designed the import to auto-run on import in order to populate the default settings. If you opt-out of auto-running the action, follow one of these two options:

    • Run the test trigger for the action Subathon 0. Code

    Test Trigger to initialize global vars

    • In the action Subathon 0. Code, right-click the Execute C# Code sub-action > Execute C# Code > Compile

    Compile C# to initialize global vars

  6. Commands are disabled by default. Enable the command group Subathon Timer

    animated gif demonstrating how to enable commands

tip

The Command Group Subathon Add Time does not need to be enabled and is automatically toggled when the timer is running/not running. They are toggled by the actions Subathon Event Action Group Enable and Subathon Event Action Group Disable

  1. In the Streamer.bot window, open the Variables window to proceed with configuration

    Global Variables button to open Global Variables window

Streamer.bot Configuration

tip

Any of the Set Argument sub-actions or global variables that require a duration can use the following syntax:

d for days, h for hours, m for minutes, s for seconds

Examples: 5d4h3m, 1h30m, 5m, 1h

Most of the configuration options for the timer will be done in the Global Variable window and can be updated in realtime.

Open the global variable window, then type subathon in the filter window. You can double-click any of the global variables to edit them.

Global Variable window displaying subathon variables1

Countdown Timer Settings

NameDescriptionDefaultNotes
subathonNameThe label of the type of Subathon timer you're running used in Chat messagesSubathonIf you name it Europathon, then the chat message when timer paused will read: The Europathon has been paused at 2 minutes and 35 seconds elapsed and 1 hour, 57 minutes, and 25 seconds remaining
subathonInitialDurationSet to how long you want to start your stream2h6h - Indicate a starting time of six hours
subathonMaxDurationSet to how long you want the limit of your subathon to be7d69d - Indicate a max cap of sixty-nine days

Twitch Hype Train / Happy Hour Settings

Multiply time added while a Twitch Hype Train or a designated Happy Hour event is live

NameDescriptionDefaultExample
subathonHypeTrainLevelUpIncrementIf using a Twitch Hype Train triggers and the linear multiplier type, user a number to increment the multiplier. It will increment each level up until you reach subathonHypeTrainMaxMultiplier0.20.5
subathonHypeTrainMaxMultiplierThis is the max value the multiplier can be incremented to. Used only for multipliers that increment based on Hype Train Level1020
subathonHypeTrainMultiplierOptions: # - Use a number for a constant multiplier linear - Grows at constant rate, 0.1 per level exponential - Starts slow, then accelerates rapidly sigmoidal - Starts slow, accelerates, then levels off (faster growth than exponential)linear2
subathonHypeTrainNameCustomize the name of your Hype Train/Happy HourTwitch Hype TrainHappy Hour

OBS Settings

NameDescriptionDefaultExample Screenshot
subathonObsConnectionSet to the zero-indexed connection number found in Stream Apps > OBS. If you only have one OBS connection, you can leave it at 00Click to see a larger image
subathonSceneSet to the name of your OBS nested scene that will house the text source for the timer[NS] Subathon
subathonSourceSet to the name of your OBS text source that will display the countdown timer[TS] Subathon Time
subathonDisplayDaysSet whether or not you want to display days in the OBS countdown timer.False
subathonIndividualTimeUnitsSet whether or not you want to use individual time units as separate text sources. There will be separate sources for days, hours, minutes, seconds, and a pause/play symbolFalse
subathonSourceDaysSet to the name of your OBS text source that displays the days left (depends on ~subathonDisplayDays~ is set to true)[TS] Subathon Time Days
subathonSourceHoursSet to the name of your OBS text source that displays the hours left[TS] Subathon Time Hours
subathonSourceMinutesSet to the name of your OBS text source that displays the minutes left[TS] Subathon Time Minutes
subathonSourceSecondsSet to the name of your OBS text source that displays the seconds left[TS] Subathon Time Seconds
subathonSourcePlayPauseSet to the name of your OBS text source that displays the play/pause symbol[TS] Subathon Time Play Pause

Chat Message Settings

NameDescriptionDefault
subathonSendMessageToSet to platforms you wish to send chat messages to. Any combination of twitch, youtube, trovo, all separated by commas with no spacestwitch
subathonSendAllPlatformsWhen sending messages, send to all platforms, or just the triggering platform (from a command)True
subathonSendAsBotSet to true if you want to use your bot account to send messages. False, otherwiseTrue

Add Time Configuration

Monetary Triggers

The Action Group Subathon Countdown Timer Add Time will have actions you can configure for adding time to the timer for each individual trigger. For any monetary triggers, you can configure %moneyDivide% and %timeToAdd%.

tip

The easiest way to think about it is: for each %moneyDivide%, add %timeToAdd%.

Example: For each $2.50 tipped, add 60s. A $5 tip would add 120s, or two minutes.

Twitch Subscription Triggers

Configure the following Set Argument sub-actions in the action 'Subathon Add Time Twitch Sub':

  • timeToAddTier1

  • timeToAddTier2

  • timeToAddTier3

    Twitch Sub Add Time Action

A general lesson on Twitch Gift Bombs

A Twitch Gift Bomb is triggered when a viewer gifts multiple gift subscriptions at one time. By default, this only triggers the Gift Bomb trigger.

There is an option in Platforms > Twitch which allows you to toggle whether or not a Gift Bomb will trigger individual Gift Sub triggers for each individual recipient.

Gift Bombs setting in Platforms > TwitchExample Number of Gifts in a Gift Bomb eventResult
Gift Bombs Ignored10Gift Bomb is triggered once
Gift Bombs Not Ignored10Gift Bomb is triggered once and Gift Sub is triggered 10 times for each individual gift recipient
Configuring the Subathon for Twitch Gift Bombs

Check the setting under Platforms > Twitch > Settings > Ignore Gift Subs from Gift Bombs

  • If gift subs from gift bombs are ignored, then the Gift Bomb trigger should be enabled
  • If gift subs from gift bombs are not ignored, then the Gift Bomb trigger should be disabled

If gift subs from gift bombs are not ignored, and the Gift Bomb trigger is not disabled, double the time will be added because the time will be added from both the gift subs from the giftbomb AND the time from the gift bomb as well!

Here's a table in case it's not clear enough:

Is the configuration correct?Ignore Gift BombsGift Bomb Trigger in the action 'Subathon Add Time Twitch Sub'Result
CorrectIgnored Gift Bombs IgnoredEnabled Gift Bomb Trigger EnabledGift Bomb Event triggers Gift Bomb trigger. Adds time for each gift using the %gifts% variable
CorrectNot Ignored Gift Bombs Not IgnoredDisabled Gift Bomb Trigger DisabledGift Bomb Event triggers Gift Sub trigger. Adds time for each individual gift sub when a gift bomb happens
IncorrectNot Ignored Gift Bombs Not IgnoredEnabled Gift Bomb Trigger EnabledTime is added twice. Gift Bomb event triggers both Gift Bomb and Gift Sub. Adds time for each gift using %gifts% variable AND adds time for each indivual gift sub
IncorrectIgnored Gift Bombs IgnoredDisabled Gift Bomb Trigger DisabledNo time gets added for gift bomb event

YouTube Membership Triggers

  1. Run the Test Trigger for the action 'Subathon 0b. Set YouTube Membership Tiers'. It will give you several input popups where you can input your YouTube Membership Tier Level names.

    animated gif showing how to configure YouTube Membership Tiers

tip

Not all membership levels are required if you are not using all the YouTube membership tier levels. If you don't use a particular level, do not edit the input, then click OK

  1. Configure the following Set Argument sub-actions in the action Subathon Add Time YouTube Membership: YouTube Membership Add Time Set Argument sub-actions

    • timeToAddYouTubeLvl1
    • timeToAddYouTubeLvl2
    • timeToAddYouTubeLvl3
    • timeToAddYouTubeLvl4
    • timeToAddYouTubeLvl5
    • timeToAddYouTubeLvl6
Regarding YouTube Membership Triggers

If you're more familiar with Twitch Subscriptions like I am, here's a handy chart:

Trigger TypeDescriptionNotesTwitch Equivalent
New SponsorWhen a viewer becomes a member for the first timeTwitch Subscription
Membership MilestoneWhen a viewer shares their membership renewalTwitch Resubscription
Gift Membership ReceivedIf enabled, to prevent time from being added twice, disable Membership Gift. When someone receives a gift (can trigger multiple times if someone gifts multiple memberships)Brand accounts cannot receive a gift membership. Accurate time added based on actual number of viewers who receive a gift membership and consent to their gift being sharedTwitch Gift Sub or Twitch Gift Bomb (with Gift Bombs set to not ignored) Gift Bombs Ignored
Membership GiftIf enabled, to prevent time from being added twice, disable Gift Membership Received. See note below as well if you use this triggerBrand accounts cannot receive a gift membership. Uses the maximum number of gifts given, but may not be accurate as there may not be enough viewers to receive giftsTwitch Gift Bomb (with Gift Subs set to ignored ) Gift Bombs Ignored

Subathon Event Configuration

Event NameDescription
Subathon Event CancelledTriggers when cancelling the subathon using command !subathonCancel twice in a row
Subathon Event CompletedTriggers when timer hits zero
Subathon Event PausedTriggers when the timer is paused
Subathon Event ResumedTriggers when the timer is resumed
Subathon Event StartedTriggers when timer is started for the first time
Subathon Event Time AddedTriggers when time is added
Subathon Event Time Added Limit ReachedTriggers when the limit is reached for adding time

You can configure most messages sent by the subathon timer via Set Arguments in the according actions. You will be able to use the following arguments to customize how much time has been added/remaining/elapsed

  • Most actions will be able to have a customized chat message
  • Each action will show which arguments are available
  • The following arguments are available with all actions that have message customization available:
Variable NameFormat
~subathonName~The name used for labeling the subathon (Default: Subathon)
%countdownElapsedLong%x days, x hours, x minutes, and x seconds
%countdownElapsedShort%0.00:00:00
%countdownRemainingLong%x days, x hours, x minutes, and x seconds
%countdownRemainingShort%0.00:00:00
%maxDurationLong%x days, x hours, x minutes, and x seconds
%maxDurationShort%0.00:00:00

Messages can then be sent to all configured platforms by setting argument %message%, then Execute C# Method SendMessageToChat.

Send Message Example

OBS Configuration

warning

Ensure the timer is not running while editing any of the OBS text sources. If you edit an OBS text source while the timer is running, it will cause OBS Studio to crash due to the text source being updated by Streamer.bot every second.

(Automatic) Scene creation using OBS Plugin Source Copy

Download or copy the following source copy json and then use Load/Paste Scene from Source Copy. This json data also includes the individual time unit text sources as explained below.

After loading the scene with Source Copy, feel free to adjust the appearance of the text source(s) as you see fit.

Download json file

subathon-source-copy.json
{"sources":[{"prev_ver":520159233,"name":"[TS] Subathon Time","uuid":"9cfcec06-44b5-4b1a-aaa6-8217b7a34131","id":"text_gdiplus","versioned_id":"text_gdiplus_v3","settings":{"outline":true,"font":{"face":"Consolas","style":"Bold","size":256,"flags":1},"bk_color":4278190080,"outline_size":17,"outline_color":4278190080,"antialiasing":true,"vertical":false,"align":"right","valign":"bottom","text":"1.02:34:56"},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"private_settings":{}},{"prev_ver":520159233,"name":"[TS] Subathon Time Days","uuid":"a30ba76c-e1d5-4b44-9aa8-6a67b1ae9360","id":"text_gdiplus","versioned_id":"text_gdiplus_v3","settings":{"outline":true,"text":"1","font":{"face":"Consolas","style":"Bold","size":256,"flags":1},"bk_color":4278190080,"outline_size":17,"outline_color":4278190080,"align":"right","valign":"center"},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"private_settings":{}},{"prev_ver":520159233,"name":"[TS] Subathon Time Hours","uuid":"0cd20353-826c-40b1-9659-5711c80f02dc","id":"text_gdiplus","versioned_id":"text_gdiplus_v3","settings":{"outline":true,"font":{"face":"Consolas","style":"Bold","size":256,"flags":1},"bk_color":4278190080,"outline_size":17,"outline_color":4278190080,"align":"right","valign":"center","text":"2"},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"private_settings":{}},{"prev_ver":520159233,"name":"[TS] Subathon Time Minutes","uuid":"e9b03045-92cd-4a81-97be-972bc0ed8714","id":"text_gdiplus","versioned_id":"text_gdiplus_v3","settings":{"text":"34","outline":true,"font":{"face":"Consolas","style":"Bold","size":256,"flags":1},"bk_color":4278190080,"outline_size":17,"outline_color":4278190080,"align":"right","valign":"center"},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"private_settings":{}},{"prev_ver":520159233,"name":"[TS] Subathon Time Seconds","uuid":"a67fc72b-f511-4199-b5bf-059653432ba8","id":"text_gdiplus","versioned_id":"text_gdiplus_v3","settings":{"text":"56","outline":true,"font":{"face":"Consolas","style":"Bold","size":256,"flags":1},"bk_color":4278190080,"outline_size":17,"outline_color":4278190080,"align":"right","valign":"center"},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"private_settings":{}},{"prev_ver":520159233,"name":"[TS] Subathon Time Play Pause","uuid":"e6d3c006-7e02-4c9b-a82e-e0917fc9ab81","id":"text_gdiplus","versioned_id":"text_gdiplus_v3","settings":{"outline":true,"text":"⏸","font":{"face":"Consolas","style":"Bold","size":256,"flags":1},"bk_color":4278190080,"outline_size":17,"outline_color":4278190080,"align":"right","valign":"center"},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"private_settings":{}},{"prev_ver":520159233,"name":"[NS] Subathon","uuid":"9623aeba-665c-4810-98cd-34587b5b8367","id":"scene","versioned_id":"scene","settings":{"custom_size":false,"id_counter":9,"items":[{"name":"[TS] Subathon Time","source_uuid":"9cfcec06-44b5-4b1a-aaa6-8217b7a34131","visible":true,"locked":true,"rot":0.0,"scale_ref":{"x":1280.0,"y":720.0},"align":5,"bounds_type":6,"bounds_align":10,"bounds_crop":false,"crop_left":0,"crop_top":0,"crop_right":0,"crop_bottom":0,"id":2,"group_item_backup":false,"pos":{"x":0.0,"y":624.0},"pos_rel":{"x":-1.7777777910232544,"y":0.7333333492279053},"scale":{"x":1.0,"y":1.0},"scale_rel":{"x":1.0,"y":1.0},"bounds":{"x":1280.0,"y":96.0},"bounds_rel":{"x":3.555555582046509,"y":0.2666666805744171},"scale_filter":"disable","blend_method":"default","blend_type":"normal","show_transition":{"duration":0},"hide_transition":{"duration":0},"private_settings":{}},{"name":"[TS] Subathon Time Days","source_uuid":"a30ba76c-e1d5-4b44-9aa8-6a67b1ae9360","visible":false,"locked":true,"rot":0.0,"scale_ref":{"x":1280.0,"y":720.0},"align":5,"bounds_type":6,"bounds_align":10,"bounds_crop":false,"crop_left":0,"crop_top":0,"crop_right":0,"crop_bottom":0,"id":3,"group_item_backup":false,"pos":{"x":0.0,"y":0.0},"pos_rel":{"x":-1.7777777910232544,"y":-1.0},"scale":{"x":1.0,"y":1.0},"scale_rel":{"x":1.0,"y":1.0},"bounds":{"x":1280.0,"y":96.0},"bounds_rel":{"x":3.555555582046509,"y":0.2666666805744171},"scale_filter":"disable","blend_method":"default","blend_type":"normal","show_transition":{"duration":0},"hide_transition":{"duration":0},"private_settings":{}},{"name":"[TS] Subathon Time Hours","source_uuid":"0cd20353-826c-40b1-9659-5711c80f02dc","visible":false,"locked":true,"rot":0.0,"scale_ref":{"x":1280.0,"y":720.0},"align":5,"bounds_type":6,"bounds_align":10,"bounds_crop":false,"crop_left":0,"crop_top":0,"crop_right":0,"crop_bottom":0,"id":4,"group_item_backup":false,"pos":{"x":0.0,"y":96.0},"pos_rel":{"x":-1.7777777910232544,"y":-0.7333333492279053},"scale":{"x":1.0,"y":1.0},"scale_rel":{"x":1.0,"y":1.0},"bounds":{"x":1280.0,"y":96.0},"bounds_rel":{"x":3.555555582046509,"y":0.2666666805744171},"scale_filter":"disable","blend_method":"default","blend_type":"normal","show_transition":{"duration":0},"hide_transition":{"duration":0},"private_settings":{}},{"name":"[TS] Subathon Time Minutes","source_uuid":"e9b03045-92cd-4a81-97be-972bc0ed8714","visible":false,"locked":true,"rot":0.0,"scale_ref":{"x":1280.0,"y":720.0},"align":5,"bounds_type":6,"bounds_align":10,"bounds_crop":false,"crop_left":0,"crop_top":0,"crop_right":0,"crop_bottom":0,"id":5,"group_item_backup":false,"pos":{"x":0.0,"y":192.0},"pos_rel":{"x":-1.7777777910232544,"y":-0.46666663885116577},"scale":{"x":1.0,"y":1.0},"scale_rel":{"x":1.0,"y":1.0},"bounds":{"x":1280.0,"y":96.0},"bounds_rel":{"x":3.555555582046509,"y":0.2666666805744171},"scale_filter":"disable","blend_method":"default","blend_type":"normal","show_transition":{"duration":0},"hide_transition":{"duration":0},"private_settings":{}},{"name":"[TS] Subathon Time Seconds","source_uuid":"a67fc72b-f511-4199-b5bf-059653432ba8","visible":false,"locked":true,"rot":0.0,"scale_ref":{"x":1280.0,"y":720.0},"align":5,"bounds_type":6,"bounds_align":10,"bounds_crop":false,"crop_left":0,"crop_top":0,"crop_right":0,"crop_bottom":0,"id":6,"group_item_backup":false,"pos":{"x":0.0,"y":288.0},"pos_rel":{"x":-1.7777777910232544,"y":-0.19999998807907104},"scale":{"x":1.0,"y":1.0},"scale_rel":{"x":1.0,"y":1.0},"bounds":{"x":1280.0,"y":96.0},"bounds_rel":{"x":3.555555582046509,"y":0.2666666805744171},"scale_filter":"disable","blend_method":"default","blend_type":"normal","show_transition":{"duration":0},"hide_transition":{"duration":0},"private_settings":{}},{"name":"[TS] Subathon Time Play Pause","source_uuid":"e6d3c006-7e02-4c9b-a82e-e0917fc9ab81","visible":false,"locked":true,"rot":0.0,"scale_ref":{"x":1280.0,"y":720.0},"align":5,"bounds_type":6,"bounds_align":10,"bounds_crop":false,"crop_left":0,"crop_top":0,"crop_right":0,"crop_bottom":0,"id":8,"group_item_backup":false,"pos":{"x":0.0,"y":384.0},"pos_rel":{"x":-1.7777777910232544,"y":0.06666672229766846},"scale":{"x":1.0,"y":1.0},"scale_rel":{"x":1.0,"y":1.0},"bounds":{"x":1280.0,"y":96.0},"bounds_rel":{"x":3.555555582046509,"y":0.2666666805744171},"scale_filter":"disable","blend_method":"default","blend_type":"normal","show_transition":{"duration":0},"hide_transition":{"duration":0},"private_settings":{}}]},"mixers":0,"sync":0,"flags":0,"volume":1.0,"balance":0.5,"enabled":true,"muted":false,"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.show_scene_item.2":[],"libobs.hide_scene_item.2":[],"libobs.show_scene_item.3":[],"libobs.hide_scene_item.3":[],"libobs.show_scene_item.4":[],"libobs.hide_scene_item.4":[],"libobs.show_scene_item.5":[],"libobs.hide_scene_item.5":[],"libobs.show_scene_item.6":[],"libobs.hide_scene_item.6":[],"libobs.show_scene_item.8":[],"libobs.hide_scene_item.8":[]},"deinterlace_mode":0,"deinterlace_field_order":0,"monitoring_type":0,"canvas_uuid":"6c69626f-6273-4c00-9d88-c5136d61696e","private_settings":{}}]}

(Manual) Create the Scene and GDI Text Source

  1. Create a scene and name it what you named it in the Streamer.bot action. [NS] Subathon by default (NS is short for nested scene)
  2. In that newly created scene, create a GDI text source with what you named it in the Streamer.bot action. [TS] Subathon Time by default (TS is short for text source)

When the timer is running, it will automatically update the text source with the time left in the subathon

tip
  • Feel free to adjust the appearance of the text source(s) as you see fit.
  • For best looking results, use a mono-space font and align to the right, this way, the numbers don't jump around as they change.
  • You may add this nested scene into any other scenes as a source. For more information on nested scenes, watch this video: Nutty explains OBS Nested Scenes - YouTube

(Optional) Individual text sources for each unit of time

You can now add separate text sources for each unit of time so you can further customize the look and layout of your timer. If you wish to use these, make sure to set the global variable ~subathonIndividualTimeUnits~ to True

UnitGlobal Variable NameDefault Source NameNotes
DayssubathonSourceDays[TS] Subathon Time DaysLeft blank if ~displayDays~ is False
HourssubathonSourceHours[TS] Subathon Time HoursLeft blank if hours is zero
MinutessubathonSourceMinutes[TS] Subathon Time Minutes
SecondssubathonSourceSeconds[TS] Subathon Time Seconds
Play/PausesubathonSourcePlayPause[TS] Subathon Play PauseDisplay ⏵ or ⏸ whether or not timer is running

OBS preview

Usage

Initializing OBS Source

If you want to have the timer display the starting time before you actually start:

  1. Edit the global variable ~subathonInitialDuration~ with the the initial time you want to start with
  2. Initialize the text source(s) by running the Test Trigger for action Subathon 0a. Initialize OBS Source

Right-click and Open Image in New Tab to see full size

Starting/Resuming Subathon

Trigger the actions Subathon 1. Start or Subathon 2. Resume to start/resume the Subathon respectively. A chat message will be sent, the timer will start, and automatically start updating the configured text source.

The action Subathon Event Action Group Enable will be triggered, causing the Action and Command Groups Subathon Add Time are enabled while the timer is running. Time can now be added while the timer is running.

image

Pausing Subathon

You have the ability to pause your Subathon and resume at a later time.

The action Subathon Event Action Group Disable will be triggered, causing the Action and Command Groups Subathon Add Time to disable while the timer is not running.

tip

By default, pausing the Subathon also pauses the ability to add time!
If you wish for time to be added while the timer is paused, make sure to disable the action Subathon Event Action Group Disable

Cancelling Subathon

If you decide you want to cancel and reset the timer, you can trigger the cancel command by typing !subathonCancel. Streamer.bot will respond asking you to confirm by typing the command a second time. Upon confirmation, the action Subathon Event Cancelled will be triggered.

The action Subathon Event Action Group Disable will be triggered, causing the Action and Command Groups Subathon Add Time to disable while the timer is not running.

Getting Elapsed/Remaining/Goal Progress

You can run the appropriate actions to return the time elapsed, time remaining, or the goal progress by running the appropriate command. The command will send a message in chat with the requested information.

The action Subathon Command Goal Progress displays your progress (in percent) in regards to the total time added compared to your ~subathonMaxDuration~ setting.

Completing Subathon

When the timer reaches zero, the action Subathon Event Completed will be triggered.

The action Subathon Event Action Group Disable will be triggered, causing the Action and Command Groups Subathon Add Time to disable while the timer is not running.

Commands

Imported commands are disabled by default as a security measure. Please make sure to enable the !subathonStart and !subathonResume command. See Step 6 in Importing the Code

Usable commands while timer is not running

Command NameDescriptionNote
!subathonStartStart the subathonYou need to enter it twice to confirm overwriting an existing subathon
!subathonResumeResume the subathonYou can resume even if you've restarted Streamer.bot or if it crashed

Usable commands while timer is running

These commands will be enabled based on whether the timer is running or not

Command NameDescriptionNote
!subathonCancelCancel the subathonYou need to enter it twice to confirm overwriting an existing subathon
!subathonPausePause the subathon
!subathonAdd xAdd time to the subathon Time can be removed by adding a hyphen - in front of the timeUse this format: d for days, h for hours, m for minutes, s for seconds Examples: 5d4h3m, 1h30m, 5m, 1h
!subathonElapsedReturn a chat message to see subathon elapsed time
!subathonRemainingChat message to see subathon remaining time
!subathonProgressChat message to see current subathon progress
!subathonHappyHourStart !subathonPowerHourStartStart a Happy Hour to apply a multiplier to time added
!subathonHappyHourStop !subathonPowerHourStopStop the Happy Hour

Credits

  • Nate1280 - for creating Streamer.bot. Please support Nate on Patreon as he builds Streamer.bot by himself and in his free time.
  • Vina - for helping me get started
  • Everyone who purchased the timer!

Testers and bug finders

Need help?

Join the discord to get help or provide feedback and post in the #extension-support channel: Rondhi's Discord