New
- Chat overlay — ASTO-BOT now serves your chat as a page of its own. Set up a browser source in OBS, paste the link, done: no outside service, no second browser page. It shows the real colours of the viewer names, their badges and their emotes — Twitch, and 7TV, BTTV and FrankerFaceZ as well. It sits in the Overlay area as a fixed entry,
💬 Chat, and cannot be deleted. Position and size come from the red rectangle on the canvas, exactly like the subtitles, and are stored as a percentage, so the same setup holds on 1080p, 1440p and 4K. - Appearance is yours —
Style…covers font, size, outline and its colour, drop shadow, number of lines, hide delay, animation, emote size, row background and corner radius. Every change takes effect immediately; nothing has to be reloaded in OBS.Fit font to linesturns the relationship around: instead of the font size deciding how many lines fit in the box, the number of lines decides the font size, so 25 lines really means 25 visible lines. - Filters only the bot can apply —
Hide bot messageshides whatever your bot account and your ignore list post;Hide commandshides everything starting with!. An external overlay can only guess at both from name lists. ASTO-BOT knows which account is its own and what was a command. - Announcements in the overlay —
/announcearrives overchannel.chat.notification, not over the ordinary message topic, so it needs its own path. It is drawn with a coloured bar down the left in the colour picked when sending. - Switching it from outside — new websocket command
{"chatoverlay": "on"|"off"|"toggle"}, and a Chat Overlay key in the Stream Deck plugin. Off really means off: no new lines are sent and the lines already on screen are cleared, otherwise the chat would stay up after switching it off. %ChatSilenceSec%and%ChatMessages<N>m%— how many seconds since anyone last wrote, and how many messages arrived in the last N minutes, with N free up to 60. A timed advertisement can now check whether anyone is actually there before it fires. Both work in ASTOSCRIPT and reset at stream start. Counting is a deque of timestamps trimmed on write, so the cost does not grow with an active chat.- Real Twitch badges in the dashboard chat card — the same images as in chat, instead of stand-in symbols. They are preloaded in the background from the catalogue the overlay already holds and cached on disk, so they are there from the first line and instant on the next start. Announcements are shown here too, with the same coloured bar.
- Indent guides in the script editor — thin vertical lines mark where a block begins and ends, as in Visual Studio Code. Purely visual: nothing is written into the script, and they stop where the block does.
Fixed
- The script editor indented one step further right on every Enter after an
END. New lines copied the leading whitespace of the current line and then added a step whenever the cursor sat past that whitespace — which is the case at the end of every line, including a closing one. The step is now added only after a line that actually opens a block, and pressing Enter inside the leading whitespace no longer indents at all. - Announcements showed up in the dashboard chat card as the bare word "Announcement". Twitch leaves
system_messageempty for them, so the fallback text built fromnotice_typewas all that was left, and the actual text inmessage.textwas never read. The card now receives the real line, with author, badges and the announcement colour. - Viewer names in dark colours were barely readable in the dashboard chat card. Twitch's default blue
#0000FFhas a perceived brightness of 29 out of 255 on a dark panel. Colours below the threshold are now blended towards white rather than scaled up — scaling cannot brighten a channel that already sits at 255. - The dashboard chat card interpreted messages as HTML.
QTextEdit.append()treats its argument as rich text, so anything a viewer typed went in unescaped — bold at best, an<img>pulling a remote file at worst. Name and text now pass throughhtml.escape(). - The emote and badge catalogue was only fetched when the first chat message arrived. The four network calls take a second or two, and everything that came in during that window was built without badges and without third-party emotes. Loading now starts with the dispatcher, well before EventSub has finished subscribing.
Install: download ASTO-BOT_Installer.exe below and run it.
Existing installations can update from within ASTO-BOT via Settings → About → Check for Update.
Support & news: https://discord.com/invite/n2nstVwspk