La_Syl Studio
Guide

Connecting Streamer.Bot

Import the four Stream UI actions, connect to Streamer.Bot's WebSocket server, choose your platforms and integrations, and back up your settings.

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:

SettingValue
Address127.0.0.1
Port8080
Endpoint/

Tick Auto Start, then click Start Server.

3. Connect

Copy the same values into the Streamer.bot WebSocket server card:

FieldDefaultDetail
Address127.0.0.1
Port8080From 1 to 65535.
Endpoint/
PasswordemptyOptional — 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.

Enable Authentication in Streamer.Bot and set a password. Without it, Stream UI cannot send chat messages. That password never leaves your PC: it travels in the overlay URL's hash, which is never sent to the web server.

System status

Next to the form, System status shows what the site found in your Streamer.Bot:

RowWhat it checks
WebSocket serverWhether the site is connected, and the browser's reason when it is not.
AuthenticationWhether your password was accepted, missing or refused.
TriggersHow many triggers your Streamer.Bot offers, and any that this version lacks.
ActionsWhether the four imported actions exist — see below.
Broadcaster accountsWhich 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.

In Streamer.Bot, open the Queues tab and add a queue with Blocking ticked, then set it as this action's queue. Only this action should use it: Finish before the next sound then makes sounds wait for each other.

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 packNeeds the pack
Chat Overlay✅ the chatBackend for the chat relay's pause and Show / Hide, Broadcast for its other manual controls
Polls & Predictions✅ polls and predictions, link soundsSounds for sound files, Backend for the pause
Emote and Gifs Wall✅ the wallBackend for Show / Hide, Broadcast for its Clear the wall button
Chatter Greetinggreetings showGet Profile Pic for Twitch pictures, Sounds for sound files, Backend for group and "Back after" greetings and the pause
Chat Activity Rewardswith Counted by the Scoreboard or Counted by the Viewer CardsBackend 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
Alertsalerts do show, link soundsGet Profile Pic for Twitch pictures, Sounds for sound files, Broadcast for the manual controls, Backend for Discord webhooks and the pause
Chat Firstfirst chatters show, but counts stay at 1 and nothing survives a reloadBackend to keep the spots and counts, send the custom event and for Show / Hide, Get Profile Pic for Twitch pictures
Goals & Subathongoals and subathon run, link soundsBackend 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
Timerstimers show and hideGet 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:

ButtonWhat it does
Export settingsDownloads 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 settingsReads 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 everythingAfter 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.

Stream UI is in beta. An export after each tuning session costs ten seconds and saves you rebuilding everything.

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

WidgeteventFields
AlertscustomAlerttitle, text, alertImageUrl, platform — or use the Stream UI - Send Custom Alert action
Viewer CardsviewerCardsShowdisplay, user, userId, platform — all optional; the code is on its page
Viewer CardsviewerCardsHide—
End CreditsrollCreditsscrollTime (s), demo
End CreditsstopCredits—
End CreditsclearCreditsplatform (left out = all)
SubathonsubathonStartstartTime (h), maxTime (h) — both optional
SubathonsubathonPause / subathonResume / subathonStop—
SubathonsubathonAddTimeseconds, 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.