Releases
Applications:
There have been changes to how the target window is detected. You now have to explicitly set if you're matching with fixed text or using a regular expression. Once matched you now have the option of sticking to the process. E.g. the window will still be considered active even if the window title changes in a way which would no longer cause it to match. Finally there has been a change so that you can see what commands, poll and predictions would be active, when the application is active for the current selection of profiles.
Cooldowns:
The ability to define a cooldown which can be shared across multiple commands. E.g. if command A and B share a cooldown, when A is triggered neither A or B can be triggered again until after the specified cooldown period. Shared cooldowns support both global and user specific amounts. If a command has multiple cooldowns, the more restrictive will be used.
Commands:
In general all commands have changed so that:
- Ability to assign shared cooldowns.
- Ability to assign shared limitations.
- Ability to turn off refunding.
- Ability to refund a different command than the one which was triggered.
- Ability to control if the command is shown within the "!use info" command.
- Ability to assign the command to multiple help commands.
- A new execution screen. This is where you can now assign the queue the command will run upon. It also allows you to set the priority of the command when executed. Higher priority commands will be executed first, even if they were triggered later. You can also set other queue's to lock; locking another queue will mean that it can't be used until the command is finished. This will allow you to stop incompatible commands running at the same time, over multiple queues.
- You can now set the priority at which a command will trigger. This will be used if two commands have the same trigger, the one with highest priority will be picked. If more than one command has the same priority, than one of them will be picked randomly.
There have also been changes to some specific command types.
Built-in commands e.g. !execute, !use, etc... can now have there identifiers assigned in the options. So for example you could change "!use info" to just "!info" or add "!info" as an alias.
Help commands have been modified so that:
- You can copy the generated text to the clipboard.
- You can output the text generated to a text file as well as (or instead of) Twitch.
- There is an inverse tab of the help commands tab, e.g. so you can see what commands are using the selected help command.
- You can assign a template to all the triggers.
Parallel commands have been modified so that:
- You can set the number of times any of the specified commands will be run. E.g. you could run the command A once but command B twice.
Play Sound commands have been modified so that:
- You can specify a variable volume at which the sound is played.
- Set an input device as the target. Note this will only work if the device supports it.
Random commands have been modified so that:
- You can limit the number of times a particular choice will be picked, when multiple choices can be picked. If the limit of a particular choice is reached it is removed from the poll of choices. Note that this will effect the percentage chance of other choices being picked when it happens.
Limitations:
The ability to define a limitation which can be shared across multiple commands. E.g. if command A and B share a limitation, then both will count towards the limit.
Options:
A number of options have been added to allow customisation of what how the UI looks, including light / dark theme, zoom level, visibility and layout of the navigation buttons etc... There have been addition behaviours to control of how the bot behaves, what warnings it shows etc...
Predictions:
The UI has been brought inline with how everything else is presented.
Queues:
Split out into a new screen, this allows you to explicitly define a queue that commands can run on. Once defined you can set a minimum delay between the items executed upon it.
Rewards:
- Generally anywhere a random command reward is used, you can now set the limit on the number of times that reward will be generated. Once that limit is reached, it will no longer be considered when generating the reward.
- Where appropriate the UI has been updated to show an example of any notifications that will be generated.
- Follower, Subscription and Gifted Subscription rewards have been converted into matching "Triggered" reward. These, like commands, can now have triggers assigned and behave in the same way. E.g. you could add a follow trigger to the reward and it would be executed when a user follows.
- When setting up a reward you can set the number of commands given for the triggering user, recipient user or random user. The triggering user is the user whom caused the reward to execute. The recipient user, is the user whom was the target of the trigger, e.g. the user whom has been gifted a subscription. A random user will choice from any active, inactive or older user in chat depending up the configuration.
Triggers:
In general all trigger have changed so that:
- They can be assigned a priority, this will override the command priority if set.
- They can be be assigned a cooldown, this will override the command cooldown if set.
- They can be be assigned a limitation, this will override the command limitation if set.
There is a new active commands changed trigger, this will occurs when the set of active commands, e.g. those which are enabled, are changed. This will happen when the game is changed or a profile is enabled / disabled.
There are also application activated and application deactivated triggers, these fire when the active application, e.g. target window, is changed.
The subscription trigger will no longer activate when the subscription was generated from a gifted reward, e.g. someone gifting a subscription.
The word trigger has had a case sensitive flag added, if set "Word", "word" and "wOrD" will all treated as different text, e.g. the case matters.
User Interface:
The UI has been completely remade to allow for the changes listed below.
- Multi language support. English (GB), English (US), German, French and Spanish are supported.
- Support for high resolution monitors and the scaling they require.
- Merging of the Console and Processing screens into a single Dashboard screen.
- Added support so that all items can be "tagged" to allow for easier organisation.
- Added support so that all items can be filtered.
Users:
The UI has been brought inline with how everything else is presented. Additionally a new screen has been added so you can see the uses of commands a specific user has, e.g. the inverse of the commands uses screen.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
A new follower trigger type.
An update to the UI so you can tell at a glance what rewards are enabled or disabled.
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.
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
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.
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.
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.
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.
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.
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.
Users
A new flag has been added to users which makes InstructBot ignore them when querying for users to reward or calculating statistics.
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.
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.
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.
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.
Or you could also create a trigger to reward your VIP's by making a command cost less:
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.
At Least: The below will trigger when 99 or more bits are received.
Up to: The below will trigger when 98 or less bits are received.
Between: The below will trigger when 200 or more and 240 or less bits are received.
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.
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.
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.
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.
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.