Changelogs

Streamer.bot v0.2.5

Upcoming changes in the next release!

New Features

  • Add a possibility of a prompt when creating triggers, if there are no criteria
  • Add 2 new Twitch sub-actions, Get Active Poll, Get Active Prediction
  • Add a new sub-action, Set Trigger State
  • Add a new User Interface option to Disable Capturing of Variable Viewer Window, this requires the Variable Viewer to be re-opened after changing
  • Add new events related to groups
  • Add 5 new Triggers for Group Events
  • C# Method, TryGetValue will try to convert strings to Guid, when T is Guid
  • Add Triggers for HypeRate.io Connected/Disconnected
  • Add new C# Method, TwitchGetBlockedTerms
  • Add a new userGroup argument for actions, that will contain a comma delimited list of the groups the user is in
  • Add new C# Method, void TriggerCodeEvent(string eventName, string json)
  • Add some new internal methods for the Chat window
  • Add a new sub-action, Custom Event Trigger
  • Add a new sub-action, Twitch Create Prediction
  • Add new integration for mtion studio
  • Add 2 new sub-actions for mtion studio
  • Add new context menu item to Action History, Goto Action, that will go to the action that ran
  • Add a new argument, oldSceneName to the OBS Scene Changed event/trigger, this will contain the previous Scene's name
  • Add 2 new Speaker.bot triggers, Connected and Disconnected
  • Add new universal argument, unixtime
  • Update Twitch Send Message and Twitch Reply To Message sub-actions with better options
  • Update Twitch C# Methods related to sending messages to handle new fallback option.
  • Add new C# method, GetCommands
  • Add a new streaming application integration, Meld Studio!
  • Add 10 new sub-actions for Meld Studio
  • Add 8 new triggers for Meld Studio

Updates

  • Update YouTube New Subscription trigger to show a prompt, indicating StreamElements is required for it
  • Add validation checks when creating a custom DonorDrive provider
  • Update LiteDB to 5.0.21
  • Add input# variables to YouTube messages
  • Add new option to Folder Watcher, Add Changed Data
  • Release Notes dialog now properly follows links
  • Messages that are sent from yout Twitch Bot account within Streamer.bot, are now flagged as internal
  • Add a minimum width to the Action columns, so they can't accidentally be hidden
  • Update how the creation of Twitch Rewards are handled, this means direct API calls will now show a new Reward
  • Update wording in Perform Command sub-action dialog, now says Target instead of Command, same as a Windows Shortcut
  • Updates to YouTube Trigger test methods and providing properly named test data
  • Add a new field, Info to 1Twitch Badge` class, this will contain the subscribed duration
  • Add MonthsSubscribed to Twitch ReSub, and Gift Sub related events
  • Update DonorDrive Donation Trigger, use DonorDrive's default Avatar Url in donarAvatarUrl
  • Add missing context menu items to the Trigger + button
  • Add payload data to the Websocket events for Custom Event and Custom Code Event
  • Small tweak to the YouTube Broadcast context menu, Monitor has been moved before the Privacy and Tags items
  • Add a randomUser to the Twitch Charity Donation trigger test
  • Tweak to how YouTube Statistic event works, should be a transparent change
  • Add YouTube broadcast information to the Websocket payload for the YouTube Command and YouTube Command Cooldown events
  • Tweak to when an Event's Websocket message is sent
  • Add special handling for C# TryGetArgs when dealing with Guid
  • When monitoring a YouTube broadcast that is not live, it will auto-unmonitor after 10 minutes to preserve quota usage.
  • Update some logging entries related to actions
  • Update connection methods for YouTube Broadcast and Bot account to setup these 2 users
  • Internal tweaks to Queue handling
  • Tweak to mtion studio process detection
  • Update OBS Set Image Source File to support Urls
  • Some tweaks to Elgato Camera Hub client
  • Update Twitch Announce to use the new UseBot and Fallback options
  • Some general cleanup
  • Update the handling of Twitch Gift Sub and Twitch Gift Bomb events
  • Add handling of Super Moderator to Trovo, they are now treated as a Moderator

Fixes

  • Fix typos
  • Fix a long standing bug related to Authentication, this was not actually causing a crash
  • Fix potential crash during startup when checking for/creating application folders
  • Fix Twitch Archive Poll suba-ction showing Terminate instead
  • Fix Read Random Line From File sub-action, Overwrite option was not being saved
  • Fix Ctrl+Alt+C shortcut key, should now open Chat again
  • Fix changing the Enabled state when editing an action not being saved properly
  • Fix potential crash when adding a custom DonorDrive provider
  • Fix potential crash when adding a DonorDrive provider with a non-numeric ID
  • Fix Midi In Events context menu not working, you can now Edit, Delete and toggle Enabled again
  • Fix YouTube Command event, inputUrlEscaped# variables always had the full message
  • Fix potential crash in Execute C# Code editor when Finding Refs, and having a using statement not terminated properly
  • Fix being able to add an empty named Group in C#
  • Fix potential crash when connecting to Elgato WaveLink, handle some unexpected data
  • Fix not being able to upgrade from 0.2.0, 0.2.1, and 0.2.2
  • Fix potential crash when handling VoiceMod events
  • Fix unicode parsing issues in Twitch Channel Points Automatic Reward event
  • Fix potential crash related to Speaker.bot integration initialization
  • Fix potential crash when opening a Streamer.bot Remote sub-action
  • Fix potential crash in Throwing System client when parsing data
  • Fix a 0.2.3 to 0.2.4 upgrade issue with a lot of Commands and Counters, causing a slow upgrade
  • Fix C# Twitch Get Clips methods
  • Fix Perform Command sub-action to properly capture STDOUT when a Wait Time is specified
  • Fix potential crash when initializing Trovo Moderators
  • Fix potential crash related to Toast Notifications on Windows 7 (it's time to upgrade)
  • Fix Set Trigger State sub-action dialog text
  • Fix Set Sub-Action State sub-action dialog text
  • Fix Refresh Triggers context menu item only working when right clicking on a trigger
  • Fix potential crash in File Changed Events when unable to open the file
  • Fix C# Method TryGetValue and properly handle Guid types
  • Fix potential issue with right clicking within the Actions window
  • Fix a potential UI crashes in Perform Command sub-action dialog
  • Fix a potential UI crashes in Fetch URL sub-action dialog
  • Fix a potential UI crashes in IFTTT Notification Advanced sub-action dialog
  • Fix a potential UI crashes in PolyPop Trigger Alert sub-action dialog
  • Fix a potential UI crashes in Test Trigger dialog
  • Check for empty data when sending a Twitch Announcement
  • Fix potential crash when connecting to Elgato CameraHub and requests timing out
  • Tweaks to Twitch GetClips, and RFC3339 dates
  • Fix a potential crashes in YouTube Gift Membership Received Trigger test
  • Fix a potential issue when using C# method, YouTubeGetBot()
  • Fix a potential crash within the internal event handling and collections
  • Fix handling of Streamer.bot Remote sub-actions when not connected to the website
  • Fix a potential crash when checking for an update
  • Fix OBS Event Trigger, Default entry was not showing correct version of events
  • Fix Twitch Gift Sub tigger, 1 month was not saving correctly
  • Fixes when handling cloning of Dictionaries internally
  • Fix backup, was missing the new webview_settings file
  • Fix potential crash when selecting a YouTube broadcast updates the UI
  • Fix an internal issue/crash realted to OBS Events
  • Fix potential crash when retrieving data from Streamer.bot Website
  • Fix potential crash when connecting to Speaker.bot
  • Fix a potential crash in Elgato Camera Hub client
  • Fix an internal parsing error in Elgato Camera Hub client
  • Fix a crash that can happen when there is an exception in an Execute C# Code's constructor method
  • Tweaks to YouTube connection, and caching of certain data
  • Fix a potential crash, when trying to authenticate YouTube Broadcaster and YouTube Bot at the same time
  • Fix the potential for the wrong OBS Scene to be returned when changing OBS scenes after a disconnection
  • Fix the YouTube Present Interval incorrectly altering the present viewer timer
  • Fix the Twitch Present Viewer Interval incorrectly altering the present viewer timer when not getting live data
  • Fix Twitch Stream Offline endedAt variable not being in UTC
  • Fix Twitch GetClipsForGame C# Methods

Details

Most of the fixes/changes going into this release can be considered a hot fix release, which is why it is going straight into beta

YouTube

With 0.2.4 and the Multi Broadcast support feature, you could now monitor any type of broadcast, so you can do testing while not live. Monitoring a broadcast that is not live consumes the same amount of quota as a broadcast that is live, and there are no mechanisms in place to stop monitoring a non-live broadcast.

Starting with 0.2.5, in order to help limit quota usage, any non-live broadcast if monitored, will be un-monitored after 10 minutes. If you still need to do testing, etc, you can always monitor the broadcast again.

This is mostly in place for those that might monitor a broadcast, and forget to monitor it, and it runs for hours.

Meld Studio

I couldn't wait till TwitchCon any longer, so, for those that have been asking for it, it's finally here. Meld Studio integration!

A very important note, Meld Studio is still a work in progress application, as such, so is the integration for it. It is something that will evolve over time as more and more features are added and exposed for 3rd party tools to take advantage of.

There are 10 new sub-actions:

  • Get Current Scene
  • Show Scene
  • Get Status
  • Recording
  • Streaming
  • Take Screenshot
  • Set Layer Visibility State
  • Set Effect Enabled State
  • Set Layer Track Muted State
  • Set Track Muted State There are also 8 new triggers:
  • Connected
  • Disconnected
  • Recording Started
  • Recording Stopped
  • Streaming Started
  • Streaming Stopped
  • Scene Changed
  • Event

Thanks to some of the error reports, I was able to spot some unusual data coming from Elgato WaveLink when making certain calls, this is now hopefully being handled.

Folder Watcher

The new option, Add Changed Data, which defaults to true, will add changed data withini the File Watcher Changed event. If you do not need the changed data in this event, or you know for a fact that the files are binary, it is highly recommended to uncheck this option.

Twitch

Added 2 new sub-actions with this release, Get Active Poll, and Get Active Prediction. Both of these sub-actions will add an argument active that is either true or false. If this is false, then there is currently no running poll or prediction. If it is true, then the data for the poll or prediction will be added to the arguments, in the same format as the triggers.

There is a new sub-action, Twitch Create Prediction. Yes, that means you can finally use the UI to create a prediction instead of relying on C# code to do this. Much like the Twitch Create Poll sub-action, all fields support variables and methods, this includes the outcomes.

Gift Bombs and Gift Subs

For a while, the Gift Sub and Gift Bomb events have been giving users intermittent troubles, and after looking more in depth at some verbose logs, I think I was finally able to solve most, if not all the issues with these events. Hopefully moving forward, these events are a bit more reliable.

Just to re-iterate how and when these events fire:

  • A user in your chat directly gifts another user in your chat a sub, this will trigger a Twitch Gift Sub event
  • A user in your chat gifts 1 random sub, this will trigger a Twitch Gift Sub event
  • A user in your chat gifts 2 or more subs, this will trigger a Twitch Gift Bomb event, and if Ignore Gift Subs from Bombs is not enabled, it will also trigger a Twitch Gift Sub for every gifted sub.

Some new variables have been added to the Gift Sub and Gift Bomb event.

  • random - Whether or not this was a targeted Gift sub, this will only be true for single gift subs that were directly given to a user.
  • systemMessage - The system message that was put into Twitch Chat.
  • totalSubsGiftedShared - A boolean value if the user gifting the sub(s) shares there total gift count. random is only available in the Twitch Gift Sub event, while the rest are available in both events

Send Message, Reply to Message and Twitch Announce

Send Message, Reply To Message, Twitch Announce sub-actions received a small update. Prior to 0.2.5, you needed to specify a preferred account to use, either the Broadcaster, or the Bot. If the preferred account was the Bot account, and it was not connected, it would fallback to the Broadcaster account.

These 2 sub-actions have done away with the preferred account, and have 2 new options, Send using Bot account, and Fallback to Broadcaster. How these options work is outline below:

  • If Send using Bot account is checked, and Fallback to Broadcaster is checked, this is the same behaviour as if you had Bot as your preferred account
  • If Send using Bot account is checked, and Fallback to Broadcaster is not checked, it will try to send using only the Bot account, and do nothing if it can't (i.e, not logged in)
  • If Send using Bot account is not checked, then it will send using the Broadcaster account

A configuration upgrade is also in place, it will convertt any Twitch Send Message/Twitch Reply To sub-actions to the new format, and if Bot was the preferred account, then both new settings will be checked

C# Methods

The C# methods have also been updated. The only thing that has changed, is a new optional parameter fallback to introduce the same behaviour in the sub-action

The new signatures for them are
void SendMessage(string message, bool useBot = true, bool fallback = true);
void TwitchReplyToMessage(string message, string replyId, bool useBot = true, bool fallback = true);
void SendAction(string action, bool useBot = true, bool fallback = true);

These changes will be transparent, and will only need updating if you wish to change the behavior

Groups

Groups got a bit of an update, there are now events, and triggers associated with them.

New Triggers

  • Group Added
  • Group Removed
  • Group Cleared
  • Group Users Added
  • Group Users Removed

New C# Methods

There is a new overload method for TriggerCodeEvent

void TriggerCodeEvent(string eventName, string json);

This method accepts a json string, that Streamer.bot will parse itself. The reason for this, is because of the way the C# code is handled and kept separate, you can not use your own object types within a Dictionary that you pass to the other methods of this, or use JObject, JArray types

New C# Method for Getting a list of commands

List<CommandData> GetCommands();

CommandData class

public class CommandData
{
`public Guid Id { get; set; }
public string Name { get; set; }
public bool Enabled { get; set; }
public string Group { get; set; }
public int Mode { get; set; }

public List<string> Commands { get; set; }
public string RegexCommand { get; set; }

public bool CaseSensitive { get; set; }

public List<string> Sources { get; set; }
`}

Custom Event Trigger Sub-action

This new trigger allows you to Trigger a Custom Event from within a sub-action. Previously you had to use the C# method, TriggerEvent(string eventName, bool useArgs = true). This will allow you to trigger any Custom Event triggers that are created.

mtion Studio

Time for a new feature, with 0.2.5 we're introducing a basic integration for mtion studio.

There are 2 new sub-actions that can be used

  • Get Active Clubhouse
  • Send Trigger This integration is a bit different, as there is no service to connect to, if you wish to use it, just add either of these sub-actions

OBS

There was a bug that popped up in the beta series for 0.2.5 after making a serialization change to how Streamer.bot handles it's events internally. I was finally able to track this down to the OBS series of events, and because of this, I have changed the data structure for these events.

This data structure is mainly used for Streamer.bot's Websocket, so if you subscribe to any OBS events, they will be a bit different.

This is what the base JS data will be for any OBS Event, some will have additional information.

{
    "timeStamp": "2024-09-09T19:43:35.1226962-04:00",
    "event": {
        "source": "Obs",
        "type": "<event here>"
    },
        "data": {
        "connection": {
            "id": "edaf6e6e-5040-487e-8ac2-0d5720610e14",
            "host": "<host>",
            "name": "<name>",
            "version": "<version>",
            "websocketVersion": "<version>"
        }
    }
}

If you were relying on any OBS events from Streamer.bot's Websocket, take note, the data has changed, and this is a breaking change.