Releases

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.

Second 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.

Bug Fixes

Fixed a bug with authentication token expiring unexpectedly.

Fixed a bug with sound device selection in the options window.

Enhancements

Enabled silent re-authentication so only when user interaction is required will browser pages be opened.

Version 3 Ready

Updated client to be ready to upgrade to version 3.

Bug Fixes

Fixed a bug with the StreamElements integration.

Mute sound command

Created a mute sound command that will mute the target application (e.g. the game) for a duration.

Play sound command

Create a play sound command that will play a sound file.

Bug Fixes

Fixed a bug were copying actions wouldn't copy everything.

Fixed a bug were copying commands wouldn't copy everything.

Fixed a bug were commands which have no cost but a trigger (e.g. a free command) wouldn't be queued.

Swap left and right mouse button command

The swap left and right mouse button command has been updated so that uses can be added.

Use Add Command for Viewer

The use add command has been updated so that it functions for viewers.

For a viewer to give themselves a use of a command they must type !use add TriggerOrBitAmount CheerXXX, e.g. they must include the cheer amount in the command (or donation). Note the number of uses will be calculated from the cheer amount, e.g. so they can gift multiple uses to themselves at the same time.

If the viewer wants to give another viewer a use they must include there user name !use add UserName TriggerOrBitAmount CheerXXX e.g. it's the same as the existing use add command, you must just include the correct cheer amount, or be within a donation message.

StreamElements Integration (Beta).

StreamElements integration has been enabled. You can now connect your StreamElements account and respond to donations or use it's points system etc...

Please let me know if you run into any issues with this.