Releases

Version 4.0 of InstructBot comes with a bunch of new features an overview of which is listed below.

Please note there is no automatic upgrade from version 3.0 to version 4.0 unless you have an active subscription.

Commands

All commands have been updated so that there identifiers and alias' which can contain spaces.

Timeout Command

The timeout command has been changed so that rather than having a single timeout command with multiple duration's, you can now define multiple timeout commands with a single duration. This was done to bring it inline with all other commands.

Example of the changes to the Timeout command in InstructBot.

Note, if you're upgrading from version 3 your existing timeout command will be split into multiple commands, one for each duration. The identifier assigned for the new commands will have the duration post fixed. For example if you're existing timeout command has 2 duration's of 60 and 120 seconds, and an identifier of timeout, the created commands will have trigger identifiers of timeout 60 and timeout 120.

Triggers

New Trigger Types

There have been been a number of new trigger types created.

Ad: Triggered when you run an Ad on you channel.

Emote Combination: Triggered when viewers enter the same emote over a specified number of messages.

Emote Pyramid: Triggered when viewers build a pyramid out of emotes.

Hotkey: Triggered when you press a specified key.

Message Count: Triggered when a viewer reaches a specified message count. Note because Twitch doesn't provider a way of querying a viewers message count, all viewers count will start at zero.

Regex: Triggered when a messages text matches the specified pattern. You can read about Regex here and test them out here just be sure to change the flavour to .NET (C#).

Stream Offline: Triggered when your stream ends.

Stream Online: Triggered when your stream starts.

Timeout: Triggered when a viewer is timed out in your stream.

Total Cheer: Triggered when a viewer reaches a specified cheer amount. Note a viewers cheer badge will be used to calculate there starting cheer amount, if any, and then a running total will be keep whilst the bot is connected.

Total Donation: Triggered when a viewer reaches a specified donation amount.

Twitch Channel Point: The Twitch channel point trigger can function in two ways. The first is "managed", the the bot will create the reward and sync it's setting with Twitch, e.g. set the name, cost, enabled / disabled state depending upon the command etc... The second is "unmanaged" where you can select a reward for the bot to respond to, please note an unmanaged reward can't be modified by the bot.

Example of a managed Channel Point trigger.

Untimeout: Triggered when a viewer is untimed out in your stream.

Modified Trigger Types

There have been changes to most triggers. The first is that they can now have delay assigned before they will allow the linked command to run. For all existing triggers this will default to 0, but can be changed. The second is that you can now specify limitations on how many times they can be triggered. This can be done on a per stream basis, e.g. you could specify to allow the trigger to function 10 times per stream, or this can be done on a per stream and viewer basis, e.g. each viewer can use the trigger twice.

There have also been changes to individual trigger types.

Donation / Total Donation

You can now assign one or more currencies which the trigger will respond to. For example you could change you donation triggers to only respond to USD donations. Note, if you upgrading from version 3 all existing donation triggers will be set to accept all currencies.

Also please be aware that some third party integrations may accept multiple currencies but only send through there value in USD, e.g. StreamElements does this.

You can also assign one or more routes which the trigger will respond to. For example you could have one trigger for donations from StreamLabs but a difference trigger for donations from DonorDrive and Tilitfy.

Word

An additional setting has been added so that you change match on "Any" of the entered words rather than on one "Randomly". All existing word triggers will keep there random behaviour but this can be changed within the trigger.

Example of a Word trigger using the Any mode in InstructBot.

Third Party Integrations

There have been an additional four third party's linked, these are DonorDrive, GoFundMe, JustGiving and Tiltify. You can enable them in the options and must pick the charity / campaign you want to monitor. When someone then donates money to the selected fundraiser the bot will then execute a command with any matching trigger.

Example of new charity integrations within InstructBot.

StreamLabs integration has also been updated with the ability to handle to StreamLabs Charity and Twitch Charity donations.

Other Changes

There have also been a number of other changes.

Application

You can now specify that once the bot has found an application using the window title, it should use the process identifier to monitor if it's active or not. This is useful if the window title changes after launch.

Bot User

Rather than the InstructBot user, you can use a custom user for the bot.

Example of enabling a CustomBot to be used on Twitch.

Performance

There has been a new caching layer added to speed up the processing of commands.

Rewards

More fine grain control over which users can receive rewards in addition to the triggering user has been added. The existing behaviour was Active or Any, the new behaviour is Interactive, Inactive or Any, where the Interactive and Inactive length of time can be defined in the options.

E.g. you could reward only viewers which have been interactive in the last 5 minutes, or reward viewers which had been active but are now longer inactive.

Version 3.8 of InstructBot has had a small number of updates to handle the upcoming changes to Twitch API, here , as well a number of bug fixes.

Version 3.7 of InstructBot has a number of changes which are talked about and shown in the video below, or for more detail please continue to read.

Accumulator

An update to allow you to assign an amount per subscription and gifted subscription tier.

Commands

An update to external commands to allow you to close the executable launched after a specified duration, as well as a general update to all commands types to be able to execute text commands when they start and end.

There have also been five new commands types added:

A sequential command which allows you to trigger one or more other commands, in order, from a single trigger.

Example of a sequential command in version 3.7 of InstructBot.

A parallel command which allows you to trigger one or more other commands simultaneously, from a single trigger.

A disable profile command which can turn off a currently enabled profile.

A enable profile command which can turn on a currently disabled profile.

A toggle profile command which will turn an off profile on, or on profile off, for a specified duration.

Example of a toggle profile command in version 3.7 of InstructBot.

Polls

The ability to create and manage polls has been added. This allow you to have predefined polls which can be started from chat or the UI by you or your moderators. Commands can then be triggered from the outcome of the polls.

Example of a poll trigger in version 3.7 of InstructBot.

Predictions

Like polls, InstructBot now allows you to create and manage predictions through the chat and the UI, as well as then trigger commands from the outcome.

Rewards

Subscription rewards have been split into subscription and gifted subscription rewards, allowing you to control what, if anything is rewards when multiple gift subscriptions are given. Please note that if you have subscription rewards configured, a duplicate gifted subscription reward will be created when upgrading.

Triggers

Subscription triggers have been split into subscription and gifted subscription triggers, allowing you to control the number of gifted subscription required to trigger a command. Please note that if you have subscription trigger configured, a duplicate gifted subscription trigger will be created when upgrading.

Example of a gifted subscription trigger in version 3.7 of InstructBot.

If you have any feedback on the above or suggestions on what to include in future updates, please join our discord and let us know.

Version 3.6 of InstructBot has a number of changes which are talked about and shown in the video below, or for more detail continue to read.

Accumulator

An update to allow you to assign the current value explicitly from within the UI, and a new setting to toggle if triggering amounts also increment the payout at value.

Applications

Currently an application become active when a window with matching name is focused. This stops working when the window text changes as the game is play.

There has been the ability added to set a pattern so that if the application name changes in a predictable manor, it will still be detected.

E.g. if an application has a target window name of Game XX% where XX increments from 0 to 100 as you progress though the game, this could be handled as you could create a pattern to pick up Game 0%, Game 1%, Game 2% through to Game 100%.

Commands

There have been a number of changes including:

Adding alias, e.g. you could assign the identifier help, and then have alias of bot, bitbot etc... so a user in you chat can type !help or !bot or !bitbot.

InstructBot showing an example of new alias in InstructBot.

Allow all key actions of an input command to use the generalised Alt, Ctrl and Shift keys, rather than specific Left Alt / Right Alt, Left Ctrl etc... as some game don't respond to the specific key and instead respond to the generalised one.

Allowing you to select a specific output device for individual play sound commands.

Being able to cancel a command which is running.

Keeping track of which keys and mouse buttons have been pressed in an input command, and then reversing them automatically when the command completes if not done explicitly by the command. For example if you have an input command with a Key Down W action, currently if that command completes without a corresponding Key Up W action, the key will remain pressed until you press it on your keyboard. The new tracker will now send a Key Up W action automatically when the input command finishes.

Letting the repeat action of an input command function over a given time period, e.g. 5 seconds / 10 seconds, as well as the ability to specify a delay between repetitions.

The ability to set the text output in the help command for the free, points and subscription triggers. For example you could change the default subscription output from Tier X Subscription to TX Sub.

Third Party Integrations

A re-work of how InstructBot connects to third parties has been implemented so that they are all independent, and can be connected / disconnected without affecting the other connections.

This means you'll no longer need to reconnect if, for example you enabled StreamElements whilst already connected. The connection to StreamElement will instead just happen.

It should also lead to an increase in visibility of when InstructBot is reconnecting, e.g. a the UI has been created to show when individual connection to Twitch Chat, Twitch PubSub, StreamElements etc... have been dropped and are reconnecting.

There have then been an update to some of the individual third parties.

Tipeeestream

The ability to take donations from TipeeeStream, e.g. as StreamElements / StreamLabs, has been added and is in beta.

Twitch

Migration from the V5 API to the new Helix (V6) API.

If you have any feedback on the above or suggestions on what to include in future updates, please join our discord and let us know.

Version 3.5 of InstructBot has 2 main changes which are briefly talked about and shown in the video below, or for more detail continue to read.

Warning! When updating from a previous version of InstructBot any accumulator or subscription rewards will be cleared, as they are incompatible with the new format.

Conditional Execution of Commands

An new condition editor has been added to all command types which will delay the execution of a command until the conditions have been fulfilled.

The below shows an example of an improved Mag Dump command, which will run only run when the application is active (e.g. you are tabbed into the game) and the Left Shift key and W key are both not pressed.

Example of the new condition builder in InstructBot, configured so the Mag Dump command doesn't execute until the game is active and the Left Shift and W keys both aren't pressed.

Please note this doesn't stop the command from being queued, so this will still pause the execution of other commands in the same queue until this command has completed (even if those commands could be executed).

Improving Rewards

Warning! When updating from a previous version of InstructBot any accumulator or subscription rewards will be cleared, as they are incompatible with the new format.

The entire rewards screen has been split into a new section, each with it's own button.

The existing accumulator and subscription rewards have been updated so that you can now create sets of rewards which can either give out a specific command or pick a command randomly from a set.

Both reward creators have been normalised into a common format, changing the accumulator so it will now payout the configured rewards at the payout amount rather than picking randomly for the costs of each of those rewards.

Below is an example of the new rewards system for Tier 1 subscriptions. It's been configured so that the subscribing user will always get 1 use of the shoot command and then one other random command.

Example of the new tier 1 subscription reward set in InstructBot.

The update allows you to assign different rewards set for tier 2 and 3 subscriptions, as well as reward different numbers of items. The same system has also been used to create a new follower reward.

In the future it's planned to extend the system so that other rewards are possible, for example given points where the point system you use allows it. If you have any suggestions on other types of rewards that could be given please join our discord and let us know.

Other Improvements

There have been a couple of other changes to InstructBot:

The ability to backup and restore InstructBot through the UI along with more control over when and where InstructBot backups your configuration.

Options screen in InstructBot showing the new backup and restore options.

A new follower trigger type.

An update to the UI so you can tell at a glance what rewards are enabled or disabled.

Highlighting the new reward indicators in InstructBot.

Additional discount options for moderators and VIPs. Please note the largest discount will be used when a user is both a subscriber and moderator or VIP.

Showing the new discount options for moderators and VIPs in InstructBot

If you have any feedback on the above or suggestions on what to include in future updates, please join our discord and let us know.

Version 3.4 of InstructBot has 3 main sets of changes which are briefly talked about and shown in the video below or for more detail continue to read.

Timeout Command

The timeout command has bene updated so that you can:

  • Customise the timeout reason, enabling you to identify timeouts by InstructBot more easily.

  • Allow durations to only target the triggering user, enabling you viewers to themselves out.

  • Allow negative durations, enabling your viewers to reduce any timeout applied by InstructBot

Shows changes to the timeout command in version 3.4 of InstructBot.

Simplifying and Improving the UI

There are a number of changes planned which include:

Added a button on warnings to take you to the relevant section.

Added a remove button to the context menu in the commands overview screen.

Show an error when there is no active application.

Added the ability to have multiple swap mouse button commands.

Fixed some DPI scaling issues.

Improved the input command action editor to number actions.

Simplifying command activation by removing the ability to toggle commands on and off explicitly and merge the other various options together in one place.

Showing the new command activation settings in InstructBot.

Show a system tray icon, and allow InstructBot to be hidden when minimised.

Updated the user editor to allow toggling of the ban flag.*

Updated the target window editor to show the list of currently open windows.

Updated the web browser used when login into Twitch, StreamElements etc... from CefSharp to WebView2, as CefSharp was sometime was flag incorrectly by anti-virus programs as malicious.

Other

Fixed issue with multiple instances of InstructBot functioning at the same time on multiple computers when using the same account.

Fixed the "Failed to get client" error when authenticating with StreamElements.

Introducing improved error handling in the backend servers.

Reduced processing time of the first command.

Removed the ability to take cheer events from StreamElements and StreamLabs, InstructBot will now only take the events from Twitch.**

*This will not actually ban or unban users on Twitch just update there state in InstructBot

**If you were previous using StreamElements or StreamLabs you'll be switched to Twitch automatically.

Version 3.3 of InstructBot has updated the console, added an emulator and fixed a number of issues including an update for the Twitch connection issues.

Console Improvements

The console has been updated so that Twitch emotes will be shown as images. If you've subscribed to BTTV and FrankerFaceZ these emotes will also be shown.

Example of emotes shown in console of InstructBot.

You can also turn off user name colouring so the text remain consistent with the reset of the console.

Emulator

The processing screen has also been updated to include a new emulator menu so that you can create triggers to test your commands.

Example showing the emulator in InstructBot.

Clicking on any of the new buttons will open a windows allowing you to enter the required settings. For example the below is the settings you can enter to create a new cheer trigger.

Emulate cheer window showing example settings in InstructBot.

After pressing the okay button a new cheer trigger will be queued and processed in a similar fashion to as if it had come from Twitch. So if there was a command with a matching exactly cheer trigger of 100, it would be queued and you could see it within the processing screen.

Other

There have also been a number of other small improvements which include:

  • Allowing the volume of play sound commands to exceed 100%. The new limit is now 200% which can be done both in the options for a global effect or individually in the commands.

  • A new notification which informs the user that they have no uses of a given command when they try and execute it in the format of "@UserName You have no uses of the XXX command.", this can be customised in the options.

  • An update to the maximum / minimum values you can enter for the relative mouse move action from 1800 to 18000 (or -1800 to -18000), e.g. from 5 complete rotations to 50 in either direction.

  • Fixed a bug where a command with a points trigger could be queued when both StreamElements and StreamLabs were disabled.

  • Fixed a bug when connecting to Twitch.

  • Fixed a bug which allowed input actions to be sorted.

  • Fixed a bug with recording followers, were the same user is recorded twice.

  • Fixed a bug with subscriptions sometimes recorded incorrectly.

Version 3.2 of InstructBot tweaks the user interface, adds new triggers, a new action to the input command and more control over when commands active.

User Interface Tweaks

Area Differentiation

It was hard to tell the different areas of InstructBot with the 3.0 UI update. So the colours have been changed to that is more obvious where one area starts and the other ends.

First example of the updated InstructBot user interface.

Second example of the updated InstructBot user interface.

The left hand navigation bar has also been shrunk so that it takes up less space.

Processing

A new menu has been added when your on the processing screen so that you can now skip or refund commands.

Example of the new menu in the processing screen of InstructBot.

Users

A new flag has been added to users which makes InstructBot ignore them when querying for users to reward or calculating statistics.

Example of showing how to ignore a user.

For example marking InstructBot as ignored will cause InstructBot to be removed from the list of valid user when giving out subscription rewards. Users which have been detected as banned are now also automatically ignored.

Commands

Active Application Required

All command have had an active application setting created. Below shows an example of the setting on an Input command.

Example of the active application setting for an input command in InstructBot.

Allow command will start with the "Default" value assigned. You can update the value to:

Default: Input, Mute Sound and the Swap Mouse Button command types require an active application by default. All other command types default to unrequired.

Required: There must be an active application for the command to execute.

Unrequired: The command will be run with or without an active application.

Always On

All command have had an always on setting created. Below shows an example of the setting on an Input command.

Example showing how to mark an input command as always on in InstructBot.

When toggled on the command will always be considered active even if the command isn't contained within a profile attached to the currently active application. This mimics the behaviour of version 2 of InstructBot.

Input Command: Scroll Wheel Actions

Two new action types, mouse scroll wheel down and mouse scroll wheel up have been added. They will each spin your mouse wheel a number of times over a given duration.

Below show an example of a Mouse Scroll Wheel Up action which turns your mouse between 10 and 20 clicks over 2 seconds.

Input Command showing an example of a mouse scroll wheel up action.

Triggers

There have been a number of new triggers created which can be used to queue commands. The bits and donation triggers have been updated with more options and the majority of triggers can now also have permissions assigned.

Permissions

For the majority of triggers you can now assign permissions limiting them to viewers, VIP's or moderators. For example you could create a trigger which is only valid for moderators.

Example of Moderator Only Text Command in InstructBot

Or you could also create a trigger to reward your VIP's by making a command cost less:

Example of cheaper VIP only Input Command in InstructBot.

Ban

A new trigger type which will execute whenever a user is banned. You can't assign permissions to this trigger.

Bits

An existing trigger type which executes whenever bits are received. You can now assign permissions to this trigger and configure it in four different ways.

Exactly: The below will trigger when 4,444 bits are received.

Example of an input command using an exactly trigger.

At Least: The below will trigger when 99 or more bits are received.

Example of a play sound command showing an at least bit trigger.

Up to: The below will trigger when 98 or less bits are received.

Example of a play sound command showing an up to bit trigger.

Between: The below will trigger when 200 or more and 240 or less bits are received.

Example of an Input Command Showing a Between Bit Trigger.

Please note all existing bits triggers will be updated to Exactly bits triggers.

Donation

An existing trigger type which executes whenever a donation is received. You can now assign permissions to this trigger and like bits triggers configure it in four different ways.

Exactly: Will trigger when a donation of matching amount is received.

At Least: Will trigger when a donation of matching amount or more is received.

Up to: Will trigger when a donation of matching amount or less is received.

Between: Will trigger when a donation of matching minimum amount or more and matching maximum amount or less is received.

Please note all existing donation triggers will be updated to Exactly donation triggers.

Free

An existing trigger type which executes whenever a user types the trigger identifier in chat. You can assign permissions to this trigger.

Example of a moderator only free command in InstructBot.

Host

A new trigger type which executes whenever you are hosted. You can assign permissions to this trigger and specify the minimum number of viewers required. For example in the below two host triggers are defined. One for viewers and another for VIP's and moderators.

Example of different host triggers in InstructBot.

Points

An existing trigger type which executes whenever a user types the trigger identifier in chat. You can assign permissions to this trigger.

Raid

A new trigger type which executes whenever you are raided. You can assign permissions to this trigger and specify the minimum number of viewers required.

Subscription

An existing trigger type which executes whenever a user subscribes. You can assign permissions to this trigger.

Timed

A new trigger type which executes at a specified frequency, e.g. ever 5 minutes. You can't assign permissions to this trigger but can specify the minimum number of messages before triggering again. When calculating this number any message for a user marked as ignored, see here aren't counted.

Example of a timed trigger in InstructBot which runs every 5 minutes and 10 messages have been entered into chat.

Unban

A new trigger which will executed whenever a user is unbanned. Note you can't assign permissions to this trigger.

Word

A new trigger which will executed whenever the specified word (or words) are typed in chat. Please note that if multiple words are entered one will be picked as active randomly and then once typed in chat will be swapped randomly for a different specified word.

Example of a word trigger using emotes in InstructBot.

Version 3.1 of InstrucBot come new features integrating it more tightly with Twitch.

Twitch Channel Points.

The ability for it to now respond to twitch channel point redemptions allowing you to setup rewards which will trigger commands.

If you've used StreamElements or StreamLabs points in InstructBot before all you'll have to do is enable the Twitch points system, see: here, and then create rewards with matching point cost.

If you're new to InsructBot you'll need to do the above and then create commands with a points trigger. See here on how to create a command.

With the above done the next time a user redeems a reward, a command with matching points cost will be triggered.

Setting Your Category Automatically.

InstructBot can now update the category displayed on Twitch to match your currently active application name. To see how to enable this behaviour see: here.

Setting Your Stream Title.

The user interface has been improved so that you can set your stream title through it.

Enhanced Use Command.

A new remove argument has been added to the use command. The inverse of add, this removes uses of a command for a particular user, see: here.

Version 3.0 of InstructBot comes with a bunch of new features an overview of which is listed below.

Applications

Applications allow you to define settings and profiles used per application. For example you can have different mouse configuration and target windows per application. This allows you to switch between games quickly without needing to re-target InstructBot.

As well as allowing you to define multiple applications InstructBot will try and update the application it targets automatically (if configured to do so), so you don't need to change anything as the active window changes.

To see more about active application targeting, see here.

Commands

Types

There are two new command types: External Command and Text Command.

External Command

Allows you to trigger a third party application with InstructBot passing it the required arguments.

Text Command

Allows you to output text into chat.

Enhancements

In general most commands have been enhanced with the following options.

Cooldowns

The ability to set a global cooldown and / or user cooldown. For more information on cooldown see here.

Help

The ability to configure the help command the command appears within it. You can see more information on the help command in each command type.

Queue

The queue the command is executed within. For more information on queues see here.

Sound Effects

The play sound commands to play at the start or end of the command.

Help Command

The help command replaces the help options from version 2 of InstructBot. It allows you to output text on how commands can be triggered.

Input Command

The renamed action commands have the common improvements to commands, a revised way of updating an absolute mouse movement command and a new repeat action.

Swap Mouse Button Command

The swap mouse button command have the common improvements to commands and a new pulsing effect which will trigger the mouse swap on and off when enabled.

Timeout Command

The timeout commands have been merged into one command from version 2 but allowing multiple duration. It also allows more fine grade control upon whom is timed out.

Console

The console screen shows you chat, activities and users. It will also show when commands are run and any warning which occur as InstructBot runs them.

You can configure it to highlight certain users, or users groups (moderators or VIPs).

InstructBot showing an example of the console screen.

Notifications

There have been updates to the notifications InstructBot sends as it runs allowing you more fine control of what InstructBot sends into chat. To see more about configuring the notification see here.

Processing

The processing screen replaces the commands window. You can see the list of commands which are queued, existing or completed. Quickly see whom triggered it, where is came from and if the user paid for it using bits, points, etc...

InstructBot showing an example of the processing screen.

Rewards

Accumulator

The accumulator screen allows you to reward chat for cheers or donations which don't trigger commands. When a total you decide is reached the accumulator is triggered distributing uses of commands.

To see more about configuring the accumulator see here.

Discounts

The discount screen allows you to set a global and / or tier based discount for command. When discounts are enabled the prices in the help command will be adjusted for the type of user triggering the command.

InstructBot showing an example of the discounts screen.

To see more about configuring the discounts see here.

Subscriptions

The subscriptions screen allows you to reward chat for each subscription which occurs. Depending upon the tier you can gift different commands to the triggering user and / or other users in chat.

To see more about configuring the subscriptions see here.

Profiles

Profiles are used to organise commands into groups, which can be enabled and disable easily or allow you different command sets for different applications. To see more about profiles see here.

Timeline

The timeline screen shows you statistic of the selected period. From average viewer count, active viewer count, to how the commands run relate to the interaction within your stream.

Currently limited in scope, as more data is collected I hope to be able to make suggestions about command costs which will increase interaction based upon anonymous usage statistics of streamer of similar size.

InstructBot showing an example of the timeline screen.