0.5.0 - The Everything Update!
WARNING: This is a MAJOR change. It requires a data migration.
In order to migrate you need OBS open/connected and to sign into your twitch accounts. Make sure to check over your stuff before going live after you migrate!
Brand New UI
- Completely Overhauled UI for a more productive workflow.
- Tabs
- Easily switch between editing multiple profiles, automations, and overlays
- Split the window to edit and view two tabs at once
- Overhauled Inputs
- More dropdowns have autocomplete
{{ templates }}
now have a helpful dropdown for easy use- Search for actions by typing instead of the fiddly accordion menu with the action palette
- Improved time inputs so you don't have to
- Unified Settings Menu
- Settings are now all on the same page instead of broken up by plugin
- Navigation Bar
- Jump right to profiles, overlays, and automations in the side bar
New Automation System
- Actions are now aware of how much time they take to run. They can be scheduled to run in parallel or in sequence using the new timeline style UI.
- Actions are now interruptible, sounds can finally be stopped in the middle. (Thanks SilverSquirrl and MisterGamingTV)
- Actions can now "result" values, which can be fed into more actions using
{{ templates }}
Profiles
- Triggers in profiles are now orderable
- Triggers now have a "Trigger Stop" option which will prevent more triggers in the same profile from running after it. Useful for setting custom responses using Viewer Grouping and preventing the default trigger from running.
- Activation conditions are now easier to configure when comparing some state to other state
Templates
- Templates now have a user friendly drop down making them much easier to select!
Queues
- The queue system replaces the old "sync" switch. Triggers can be submitted to a queue, and will wait on any other triggers in the queue.
- The Queue Skip action will stop the currently running sequence.
OBS
- Can now connect to multiple OBS on multiple machines!
- The new Play Media action can run an OBS media source from start to finish. Showing it on start, and hiding at completion.
- The Screenshot Action can save the current stream or a specific source to a PNG file.
- The screenshot action results in a filepath which can be used by other actions.
Discord
- The Discord Message action can now attach files, including screenshots taken by the Screenshot Action
Sound
- Sounds can now change which device they play out of.
- Sounds are finally interruptible and can be stopped. This makes testing automations much less annoying!
- TTS Voices have been moved to their own resource. This will allow for more TTS providers in future updates.
- Voice Triggers have been removed because they were unreliable. They will return in a future update.
Time
- Added Timers (Thanks QuicksandGM)
- Created like a regular variable
- Can be used in activation conditions
- {{ templated }} into overlays so they can be displayed
- Added actions Set Timer, Offset Timer, and Toggle Timer
Twitch
- Add robust viewer grouping system for finer controls over which triggers run for which viewers
user
,userId
, anduserColor
have now been rolled into oneviewer
. Simplifying how to use them in actions and templates.- To get
userId
useviewer.id
- To get
userColor
useviewer.color
- To get
- Added twitch info management, titles and tags can now use
{{ templates }}
and will update your info automatically - Channel Point Rewards can now use
{{ templates }}
to update their info automatically - Triggers can now be set to run on Channel Point Rewards not created by CastMate. (They cannot be auto-toggled though.)
- Added Viewer Groups which are saved configurable groups of viewers. Usable by triggers to help configure who can trigger them.
- Added Walk On trigger, which runs the first time someone chats during the current stream.
- Added Ad Triggers
- Timers implemented for next ad, currently running ad, and no prerolls
- Ad Scheduling triggers run based on the Twitch Ads manager.
- NOTE: Twitch's servers don't correctly report when the ads start, there's a unknown gap between when ads are supposed to start and when they actually start.
- Ad Start and Stop Triggers for when ads actually run
- Timer state has been added for when the next ad will run and for how long is left in the current ad
- Fix regex powered chat commands not properly matching (Thanks AtlasD_29)
Random
- The new automation system allows for a random action which can randomly branch automation flow.
Philips Hue
- Hue Groups now properly track their on/off state, so toggling will work (Thanks camelul)
Input
- New Keyboard Shortcut Trigger. Triggers when you press the configured key combo.
Remote
- Remote Button triggers can now be activated from Deckboard or Stream Deck (Thanks AnnieFuchsia and MisterGamingTV)
Overlays
- Alerts can now have multiple media items, and will choose randomly between them when shown.
- Alerts now properly wait for media to be loaded before trying to play, which should fix some random freezing. (Thanks Unfling)
- The wheel can now adjust the way text is positioned (Thanks QuicksandGM)
- Widgets can now be toggled visible and invisible with the Widget Visibility action. (Thanks SilverSquirrl)
- The Bounce Emotes action allows sequences to manually inject emotes into the Emote Bouncer
- REGRESSION: Emote Bouncer is missing support for emojis and some 3rd party emotes.
Stream Plans
- Stream Plan Segments now have a deactivation automation
Dev Junk
- Switched from Vuetify to PrimeVue
- Completely rewritten in TypeScript
- Schemas are now type driven
- Proper Typescript typing
- Serializing and Deserializing built in
- Templating built in
- Remote Schemas allow resolution in the overlay process (Useful for timers)
- Exposed and Unexposed schemas allow for additional data queries only when the schema will be passed to automations. (Useful for lazily resolving Viewer information from Twitch API)
- Plugins are now a collection of node modules
- Modules
- main is a module loaded in the main process
- shared is a module that can be loaded by renderers, overlays, and main process
- renderer is a module loaded by the renderer processes
- overlay is an optional module loaded by the overlay webapp
- native is an optional C++ module
- DataInput uses dynamic components so plugins can provide their own inputs
- DataView uses dynamic components so plugins can provide their own views
- Documents, Tabs, Project Items, Resource Edits are all dynamic components and can be provided by plugins
- Modules
- Declarative action and triggers using
defineAction
anddefineTrigger
- Actions no longer need to manually template values they're handled via schemas now
- Sound Devices changes are detected through windows API
- Input detection driven by native module
- TTS has been refactored in preparation for more TTS providers
- Windows TTS has been re-written to not rely on the powershell and instead calls the windows API directly from a native module
- Logging has been updated to log per session instead of one gigantic log