Connecting Streamer.Bot
Stream UI talks to Streamer.Bot through its WebSocket server. Most widgets need nothing else. A few features also need four small C# actions, the action pack, imported in one go.
The Connection page has four tabs: Streamer.bot (the actions, the connection, platforms and integrations, open by default), Ignored users, Backup and Licence.
The Streamer.Bot tab
1. Import the actions
Streamer.bot actions import string, at the top of the WebSocket server card:
Copy the string
Click Copy import string.
Import it
In Streamer.Bot, click Import at the top, paste the string into Import String, then click Import.
Restart Streamer.Bot
Restart it before connecting it to the website.
Once connected, Actions in System status says whether they are all there. After an update of Stream UI, import the string again: a feature added since may need it.
2. Start the WebSocket server
In Streamer.Bot, go to Servers/Clients → WebSocket Server:
| Setting | Value |
|---|---|
| Address | 127.0.0.1 |
| Port | 8080 |
| Endpoint | / |
Tick Auto Start, then click Start Server.
3. Connect
Copy the same values into the Streamer.bot WebSocket server card:
| Field | Default | Detail |
|---|---|---|
| Address | 127.0.0.1 | |
| Port | 8080 | From 1 to 65535. |
| Endpoint | / | |
| Password | empty | Optional — needed for sending messages to the stream chat. |
Click Connect. Switch on Connect automatically when I open this site if you do not want to click it every time.
System status
Next to the form, System status shows what the site found in your Streamer.Bot:
| Row | What it checks |
|---|---|
| WebSocket server | Whether the site is connected, and the browser's reason when it is not. |
| Authentication | Whether your password was accepted, missing or refused. |
| Triggers | How many triggers your Streamer.Bot offers, and any that this version lacks. |
| Actions | Whether the four imported actions exist — see below. |
| Broadcaster accounts | Which platforms Streamer.Bot is logged in to. |
If it cannot connect, the message says why: Streamer.Bot not running or its server not started, a password required or wrong, no answer in time, or something other than Streamer.Bot answering on that port.
Platforms and integrations
Platforms — Twitch, YouTube and Kick — are all on by default. Each row shows the account Streamer.Bot is logged in with. Turn a platform off to ignore its events in every widget and hide the related sections and triggers on the website.
Streamer.bot integrations are the services connected to Streamer.Bot. They are all off by default; switch on the ones you use:
Crowd Control · DonorDrive · Fourthwall · HypeRate · Ko-fi · Pally.gg · Patreon · Pulsoid · Shopify · Speaker.bot · StreamElements · Streamer.bot Remote · Streamlabs · Streamloots · Throne · T.I.T.S. · TipeeeStream · TreatStream · Voicemod · VTube Studio
Switching one on adds it everywhere it applies: its own section in Alerts and Goals & Subathon, its test buttons, and its own button under Style for on the Alerts Style tab. Streamer.Bot does not report whether an integration is set up, so these rows carry no status badge.
An integration whose events a person sets off (a donation, an order…) unfolds with the
arrow left of its icon: one field per trigger, the payload field holding the supporter's
name — Ko-fi's from, for instance. The Viewer Cards
credit the viewer of that name. Each field shows the one Streamer.Bot documents until you
type another; left empty, it goes back to it.
The four actions
What each imported action does. None needs a trigger: the site calls them by name.
Stream UI - Broadcast
Lets the website send commands (start a subathon, test an alert, roll the credits…) to
your overlay. They arrive as a General.Custom event.
Stream UI - Backend
Saves what has to survive a restart in Streamer.Bot's global variables — goal and
subathon progress (streamUi.goals.<goal id>, streamUi.subathon), Chat First's spots,
counters (streamUi.counter.<name>), viewer counts, Chat Activity Rewards' count, the
chat relay's and Polls & Predictions' pause, the Discord webhooks — and lets the website change them while you are
live. It also writes viewers' user variables (firstInChat, lastSeen, chatMessages),
fetches Twitch clips and channel info for Shoutout and Clip Autoplayer, checks which user
groups a viewer is in, fills, reads and clears End Credits' groups, sends Twitch
shoutouts, posts alerts, messages and pictures to Discord, reads the
Twitch pictures of your broadcaster and bot accounts (for the Ignored users tab and the
previews) and opens Windows' file and folder pickers for sounds and screenshot folders.
For the Scoreboard and the Viewer
Cards, it keeps the scores (ss.<platform>.<stat>.*)
and the viewers' stats, adds viewers to achievement groups and saves the cards'
screenshots. It adds the New First in Chat, New Stream High Score and New
Achievement Unlocked triggers (Custom › Stream UI) for your own actions.
Stream UI - Sounds
Plays the sound files of your alerts, goals, greetings and polls from this PC — one file, or a random file of a folder — with Streamer.Bot's own player, on Streamer.Bot's default audio device (C# cannot pick another one). Sounds set as a Link do not need it: the browser source plays them.
Stream UI - Get Profile Pic
Finds Twitch profile pictures for Alerts, Chat First and Chatter Greeting. YouTube and Kick send theirs with the event, Twitch does not.
Who needs what
| Works without the pack | Needs the pack | |
|---|---|---|
| Chat Overlay | ✅ the chat | Backend for the chat relay's pause and Show / Hide, Broadcast for its other manual controls |
| Polls & Predictions | ✅ polls and predictions, link sounds | Sounds for sound files, Backend for the pause |
| Emote and Gifs Wall | ✅ the wall | Backend for Show / Hide, Broadcast for its Clear the wall button |
| Chatter Greeting | greetings show | Get Profile Pic for Twitch pictures, Sounds for sound files, Backend for group and "Back after" greetings and the pause |
| Chat Activity Rewards | with Counted by the Scoreboard or Counted by the Viewer Cards | Backend when Chat Activity Rewards counts the messages itself, and for the pause |
| Scoreboard | — | Backend to keep the scores, and for the manual controls |
| Viewer Cards | — | Backend for the viewers' stats, achievements and screenshots, Get Profile Pic for Twitch pictures, Broadcast for the Show and Hide buttons |
| Alerts | alerts do show, link sounds | Get Profile Pic for Twitch pictures, Sounds for sound files, Broadcast for the manual controls, Backend for Discord webhooks and the pause |
| Chat First | first chatters show, but counts stay at 1 and nothing survives a reload | Backend to keep the spots and counts, send the custom event and for Show / Hide, Get Profile Pic for Twitch pictures |
| Goals & Subathon | goals and subathon run, link sounds | Backend to keep progress across restarts, edit counts live and for Show / Hide, Sounds for sound files, Broadcast for the subathon buttons |
| Shoutout | — | Backend for the clips, the picture, the group check and Twitch's shoutout, Broadcast for the manual controls |
| Clip Autoplayer | — | Backend for the clips, Broadcast for the manual controls |
| Stream Counter | — | Backend to create, count, reset, show and hide the counters, and for the manual controls |
| Viewer Counter | — | Backend to save and reset the counts, and for Show / Hide |
| Timers | timers show and hide | Get Profile Pic for Twitch pictures, Broadcast for the manual controls |
| End Credits | — | Backend to fill, read and clear the groups, Broadcast for the manual controls |
| Discord Webhooks | — | Backend to keep the webhooks and post the messages and pictures, Get Profile Pic for Twitch pictures with Post as the viewer |
The manual controls are the buttons of each widget page's Controls tab, also gathered in the controls window.
The Ignored users tab
People whose messages never show in the Chat Overlay or the Emote and Gifs Wall, are never forwarded by the chat relay, never greeted by Chatter Greeting, never counted as unique chatters by Viewer Counter, never first in Chat First, never counted or rewarded by Chat Activity Rewards and never added to the End Credits — your bots, an alt account. It applies to every widget at once.
- Ignore connected accounts — List of accounts connected in Streamer.bot. Toggle to add to the ignored user list. One line per platform switched on, the Broadcaster on the left and the Bot on the right, each with its picture. Switch one on to ignore it; if the account is renamed, the list follows.
- Ignored users — Add users to the ignored user list. They will be ignored by all of the widgets of the site. Type any username in Username to ignore, then Add. Names are matched without regard to case. The list starts empty: add your bots (Nightbot, StreamElements…) yourself.
The Backup tab
Your settings only live in this browser. Use the Backup tab:
| Button | What it does |
|---|---|
| Export settings | Downloads stream-ui-settings-<date>.json: connection, platforms, ignored users, styles, every overlay (with which one runs the actions), every widget, switched on or off, and the images you uploaded. The password is left out. |
| Import settings | Reads a file exported from Stream UI. The password you have entered is kept. It also reads a backup of the former Stream Scores website: its stats, cards, achievements, triggers and the first scoreboard and cards views' styles go to the Scoreboard and the Viewer Cards, switched on; the rest of your settings stays as it is. |
| Reset everything | After a confirmation, puts connection, widgets and styles back to their defaults, with a single overlay, Main overlay. |
The licences are stored apart: export, import and reset never touch them, and a backup never carries a key.
The Licence tab
Two licences, side by side, each with its own key:
- Ad-free licence — 1 month, 6 months or 1 year. Once the key is accepted, the ads disappear from the website in this browser. They never show in your overlay either way. It is the same panel as the Go Ad Free box on Stream UI's home page.
- Stream Scores Licence — €4.99 a month or €99.99 once, before VAT. More than one overlay for the Scoreboard and the Viewer cards, every scoreboard stat switched on (5 per platform without it), every stat and achievement on the cards (5 stats per platform and 5 achievements per list without it), and no ads either. Keys bought for the former Stream Scores website work here. While it is on, the overlay URL carries the key, and the browser source checks it by itself: copy the URL again after entering it.
Enter a key in its card, or pick a plan to buy one. Check now asks Lemon Squeezy again; Deactivate frees this browser's activation, to use the key elsewhere.
Driving widgets from your own actions
Any Streamer.Bot action can command a widget: add an Execute C# Code sub-action that broadcasts JSON.
CPH.WebsocketBroadcastJson("{\"event\":\"rollCredits\",\"scrollTime\":60}");
This needs no action from the pack. The widgets that take commands list them on their page's Controls tab, with a ready-to-copy line, or on their docs page (Viewer Cards).
| Widget | event | Fields |
|---|---|---|
| Alerts | customAlert | title, text, alertImageUrl, platform — or use the Stream UI - Send Custom Alert action |
| Viewer Cards | viewerCardsShow | display, user, userId, platform — all optional; the code is on its page |
| Viewer Cards | viewerCardsHide | — |
| End Credits | rollCredits | scrollTime (s), demo |
| End Credits | stopCredits | — |
| End Credits | clearCredits | platform (left out = all) |
| Subathon | subathonStart | startTime (h), maxTime (h) — both optional |
| Subathon | subathonPause / subathonResume / subathonStop | — |
| Subathon | subathonAddTime | seconds, username, trigger |
Goals have no command: their count and target are changed on the
Goals & Subathon page, through Stream UI - Backend.
Stream Counter and
Viewer Counter have none either: your actions change
their persisted global variables directly — a counter's count, or whether it is hidden —
and the overlay follows. The same goes for showing and hiding the Chat
Overlay, Chat First, Goals &
Subathon, Viewer Counter and the
Scoreboard: streamUi.off.<widget>.display (chat,
chatfirst, goals, viewers, scoreboard) at 1 hides the widget in every overlay,
0 shows it.
Getting started
A collection of overlay widgets for Streamer.Bot — chat, greetings, chat activity rewards, a stream scoreboard and viewer cards, shoutouts and clips, alerts, goals, subathon, counters, polls, timers, end credits, an emote and gifs wall, and Discord posts.
Triggers and conditions
How Alerts, Goals & Subathon, Stream Counter, End Credits and the reset triggers react to the Streamer.Bot triggers you pick, with conditions, text variables, a chat message, a sound and a Discord message.

