An update on what's planned for Version 3.6

Published: 2021-10-11 by Omsad

With everyone being forced to update to version 3.5 of the InstructBot client today, I thought I would outline what's on track for version 3.6.

Please note everything below is subject to change based upon testing and feedback.

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 added the ability 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...

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

  • 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 have been pressed in an input command, and then releasing them automatically when the command completes if not done explicitly by the command.

  • Letting the repeat action of an input command to function over a given time period, as well as specify the delay between repetitions.

  • The ability to set the text output in the help command for a subscription trigger.

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 mean you'll no longer need to reconnect if, for example you enabled StreamElements whilst already connected. The connection to StreamElement will instead just be made.

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

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

StreamElements

Has had additional logic for Extra Life and Tiltify charity events. The ability to link StreamElements tips to a Twitch account (so discounts can be applied) when the person tipping is logged in on StreamElements has also been added.

Tipeeestream

Ability to take donations from TipeeeStream, e.g. as StreamElements / StreamLabs, has been added.

Twitch

Migration from V5 of the Twitch API to Helix (V6).

Website Update

For version 3.0 of InstructBot I separated the backend website API's into a "core" which handled authentication, error report, integration with StreamElement, StreamLabs, Twitch, e.g. everything required for the bot to connect and run, and then a "client" which handled sharing commands, storing data etc..., e.g. everything else.

The aim of which was to allow me to make changes to the client without needing to bring the entity of the backend offline to perform an update. This in practice hasn't worked as both the core and client services rely on a single database which to do any modification to requires both of them to be offline.

For version 3.6 I'm plan to split the single database into two. This will mean a minimum amount of downtime for the core website (a number of hours) and an extended period of downtime for the client (a number of days).

Once completed I'll be able to update functionality in the client, for example a better experience when sharing commands, and add new functionality without having to stop the core website.