Streamer.bot v0.2.5
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 toDisable 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 toGuid
, whenT
isGuid
- 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 theOBS Scene Changed
event/trigger, this will contain the previous Scene's name - Add 2 new
Speaker.bot
triggers,Connected
andDisconnected
- Add new universal argument,
unixtime
- Update
Twitch Send Message
andTwitch 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
to5.0.21
- Add
input#
variables toYouTube
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 saysTarget
instead ofCommand
, same as a Windows Shortcut - Updates to YouTube Trigger test methods and providing properly named test data
- Add a new field,
Info
to1
Twitch Badge` class, this will contain the subscribed duration - Add
MonthsSubscribed
toTwitch ReSub
, andGift Sub
related events - Update
DonorDrive Donation
Trigger, use DonorDrive's default Avatar Url indonarAvatarUrl
- 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 thePrivacy
andTags
items - Add a
randomUser
to theTwitch Charity Donation
trigger test - Tweak to how
YouTube Statistic
event works, should be a transparent change - Add
YouTube
broadcast information to theWebsocket
payload for theYouTube Command
andYouTube Command Cooldown
events - Tweak to when an Event's Websocket message is sent
- Add special handling for C#
TryGetArgs
when dealing withGuid
- 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
andBot
account to setup these 2 users - Internal tweaks to Queue handling
- Tweak to
mtion studio
process detection - Update
OBS Set Image Source File
to supportUrls
- 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
andTwitch Gift Bomb
events - Add handling of
Super Moderator
toTrovo
, they are now treated as aModerator
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 openChat
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 nowEdit
,Delete
and toggleEnabled
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
inC#
- 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
, and0.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
to0.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 aWait 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
andYouTube Bot
at the same time - Fix the potential for the wrong
OBS Scene
to be returned when changingOBS 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
Elgato WaveLink
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 aTwitch Gift Sub
event - A
user
in your chat gifts 1 random sub, this will trigger aTwitch Gift Sub
event - A
user
in your chat gifts 2 or more subs, this will trigger aTwitch Gift Bomb
event, and ifIgnore Gift Subs from Bombs
is not enabled, it will also trigger aTwitch 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 targetedGift 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 TwitchGift 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, andFallback 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, andFallback to Broadcaster
is not checked, it will try to send using only theBot
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 theBroadcaster
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.