
An update about voice, memory, and order in your events. There are now 38 neural TTS voices instead of ten — from game characters to new narrators — each previewable right in the list, and numbers are finally read out as proper words. The chat has learned to remember viewers: a person's first message ever gets a "FIRST MESSAGE" badge, and restarting the app doesn't wipe that memory. Events from donation services no longer show up and get voiced twice, donations via the donatty group link arrive again, and Twitch bits became a fully configurable event. Plus ten new game-mode themes, visible keyword highlighting, a "don't ask again" checkbox in the exit dialog, and a clear "VK / VK Live / VK Video" name for the VK connector.
Speech
There are now 38 neural voices — up from 10. 28 new ones: game and pop-culture characters (Geralt, Pudge, Kerrigan, Queen of Pain and more) plus new narrator voices. Each has a proper name in the list, so picking a voice to match your channel's vibe got much easier.
Preview any voice right in the list. Every entry in the dropdown got a ▶ button — the sample plays immediately, no applying settings or separate "Testing" needed. A spinner shows while the sample is being prepared.
Numbers are read out as words. "987654" is spoken as a number, "-5" as "minus five", "3.5" with its fraction. Previously numbers came out garbled or in the wrong language.
A separate voice per event type. In notification template settings you can now pick a TTS voice individually for donations, subscriptions, follows and any other event type — instead of one global voice for everything. Resetting the choice returns the global voice.
Sound first, then voice — by default. The notification sound and the spoken text no longer overlap: the event sound plays out fully, then the reading starts. The setting is still there if you preferred the overlap.
Neural synthesis quality settings. An "auto / fast / high quality" mode, a toggle for improved pronunciation (dictionary stresses and text analysis), and trimming of trailing silence — tune the speed/quality balance for your machine.
A personal herald sound for a viewer. You can assign a viewer their own sound that plays before their messages — independent of the global message-sound settings.
A "sound only, no voice" entry no longer disappears. If a viewer had a personal sound but no personal voice, that row silently vanished on the next settings save. The voice list now has a "Default voice" option, and the entry saves properly.
Speech (continued)
A viewer's personal volume isn't clobbered mid-phrase. While a viewer's phrase with personal volume is playing, toggling mute or moving the master slider no longer overwrites it with the global value.
Pronunciation odds and ends. Emoji-only messages no longer "click" in the TTS, ALL-CAPS words are pronounced correctly, and on Linux the settings now show the reason and the install command if the system speech engine is missing — instead of just staying silent.
Chat and appearance
The "FIRST MESSAGE" badge. When a viewer writes in your chat for the very first time — ever, not per session — their message gets a visible badge: you instantly spot the newcomer worth greeting. The memory survives app restarts; works in the chat window, game mode and the OBS widget, and toggles in appearance settings.
Keyword highlighting is actually visible now. A match used to light up the message with a barely noticeable frame — many assumed the feature didn't work at all. Now the matched word itself gets a bright label right in the text (in all windows and the widget), with the frame remaining as a second, quieter signal. Also fixed: a stray space in the keyword list acted as an "empty" keyword and highlighted every single message.
Ten new game-mode themes: Neko, Kawaii, Biolab, Mochi, Yoru, Koi, Dragon Sword, Battlefield 6, The Lord of the Rings and Ragnarok — each with its own message styling, platform icons and themed decor animation.
Theme changes appear in OBS immediately. An open browser source with the game widget switches to the new theme right away, without re-creating the source — it used to keep showing the old theme until a reload.
"VK / VK Live / VK Video". The VK connector was renamed so it's clear that one connector covers all VK sources — both VK Live and VK Video.
The raid viewer count is shown again in the recent events feed and the notifications widget ("nick - 25") — previously only the nickname survived.
Donations and events
Events are no longer shown twice. A follow, subscription or raid from StreamLabs, DonationAlerts, DonatePay or donatty used to arrive both as a plain text line in chat and as a configurable alert — viewers saw and heard it twice. Now there's one event: the configurable one (text, sound, voice, visibility). This also makes the custom sound assigned to such an event work — for example, your own sound for a new follower.
Donations via the donatty group embed link arrive again. With such a link the app said "Connected" as usual, but the actual donations were lost silently — the streamer never knew.
Twitch bits via StreamLabs are a full event. Visibility toggles, your own text (with correct pluralization), your own sound and voice — previously a bits message came as a plain line with no settings. Subscriptions also now distinguish new subs from renewals — each with its own text.
A custom template for any of the 13 event types in the OBS notifications widget. Previously custom styling could only be assigned to 6 types; for bits and gifts it was simply impossible.
New event types get enabled on existing channels. A channel connected before the app introduced a new event type (e.g. raids on StreamLabs) now gets it enabled automatically — it used to look manually disabled, and only re-creating the channel helped. For the same reason, follows and viewer joins/leaves on GoodGame and follows on TikTok show by default again.
The StreamLabs status tells the truth. On a connection drop the channel no longer sits silently "connected": you see "reconnecting", a recovery message, and a warning if connecting keeps failing.
Anonymous events aren't lost. An anonymous subscription or YouTube membership via donatty reaches the chat, and a nameless viewer is consistently called "Viewer".
Donations and events (continued)
A donation in an unrecognized currency no longer skews the statistics, and a re-delivered StreamLabs or DonatePay event isn't counted twice.
The log names the channel that actually connected. With two channels of the same platform, log lines are no longer attributed to the neighbor.
Settings and convenience
"Don't ask again" in the exit dialog. Tick the checkbox — and the app will close immediately from now on; the confirmation can be brought back with a toggle in General settings.
A hint for "Always on top". The setting works over games in windowed and borderless modes, but not over exclusive fullscreen — the settings now say so directly, suggesting to switch the game to borderless.
Changing a channel's platform doesn't carry settings over. If you pick another platform while editing a channel, the old platform's event settings no longer "move" to the new one — it gets its own defaults, and the old ones return if you change your mind.
Two identical channels don't confuse the app. With an accidental duplicate (one enabled, one disabled), stream status and events follow the enabled entry, not whichever came first.
Stability and data safety
Viewer memory is fault-tolerant. The storage that remembers viewers between launches (including the first-message badge) no longer disrupts the app if its file is damaged or the disk is unavailable: you get one clear notification, and the chat and everything else keep working. Recovery doesn't delete the damaged file if re-creating it failed — data is never destroyed silently. The storage runs in the background and doesn't stutter the chat even during message bursts.
Double-clicking the close button — one exit sequence. A quick double close, or closing during an auto-update, no longer launches two parallel shutdowns with extra dialogs.
Personal paths removed from the diagnostics log. File-picker errors (sounds, images) no longer write a path with your Windows account name into the log — just the error code.
Updates and installation
"Updating the installer…" instead of "Updating the update module…". The tautology on the self-update screen is fixed — the component is now consistently called the installer.
Security
Custom theme names defused. A specially crafted custom theme name can no longer inject content into the settings window — the name is always displayed as plain text.
Donation service keys don't leak. A StreamLabs, DonationAlerts, DonatePay or donatty connection key can no longer end up in the app log (even with unusual link formats) and isn't passed in the data sent to OBS widgets; fake addresses masquerading as a donation service are recognized. Keys containing a dot are accepted properly.
Viewer storage is closed to foreign pages. Only the app's own windows can access it — content from third-party platforms loaded in connector windows cannot reach it.