La_Syl Studio
Widgets guide

Chat First

Crowns the first chatter of each stream on every platform, with their picture and how many times they were first.

Rewards whoever speaks first in your chat. Each platform has its own first chatter: the first person on Twitch, the first on YouTube and the first on Kick each get their spot, shown with their profile picture, their name and how many times they have been first.

Platforms: Twitch, YouTube, Kick

Action pack: needed — Backend keeps the first spots, the counts and whether the widget is shown, and sends the custom event; Get Profile Pic finds Twitch pictures. See Who needs what.

How it works

  • One first per platform. Streamer.Bot's First Words event fires when someone writes their first message. The first of those on a platform takes that platform's spot; the others are ignored until the spot is free again.
  • The spot stays taken until a reset. By default each platform frees its spot when your stream goes live there (see Automated controls). The spots are saved in Streamer.Bot, so reloading the browser source does not lose them.
  • Every first is counted. Each new first adds 1 to the viewer's firstInChat user variable in Streamer.Bot. It is kept for good, and your own actions can read it — a !first command, for example.
  • Places follow the order of arrival. Whoever spoke first is shown first, then the next, then the next — in a row, a column or on a podium.
  • Only the overlay that runs the actions takes spots, counts and sends the custom event. Other overlays show what it saved, and a new first pops up there too. A single-widget URL never takes a spot. → Which overlay runs the actions
Ignored users — your bots, Nightbot… — and your own broadcaster and bot accounts are never first. Ignored users are set once for every widget, on the Settings page's Ignored users tab.

The page

The widget's page works like a small app:

  • Settings, Style and Controls, the tabs over the editor, switch what it shows.
  • The Settings tab holds every setting in the main area, under four headings. On the Controls tab, a column on the left lists the controls — Show, Hide and Clear —, the picked one's trigger list beside it, and the main area holds the manual controls. The custom event is explained on this page only.
  • Widget preview, the panel against the window's right edge: the preview, the test buttons and the widget's own URL. The arrow at the top folds it to a slim rail. Drag its left edge to widen it, up to half the window; it keeps its width. Widget shows the widget in its position, cut from the canvas as your browser source draws it; On canvas, the whole canvas.

Settings

Display settings

SettingDefaultDetail
Podium modeoffPuts the firsts on a podium: 1st in the middle on the highest step, 2nd on the left, 3rd on the right. Display only — nothing counts podium places. Without the podium, the firsts sit side by side or one under the other: the Direction of the Container (its Content), on the Style tab.
Stay on screenon (fixed)On: the firsts stay on screen until they are hidden. Off: each new first shows for the show duration, then leaves.
Time on screen15 sHow long a first stays on screen, from 3 to 120 s. Only when Stay on screen is off.

With Stay on screen off and the podium on, a new first brings the whole podium back, with the earlier firsts in their places.

Viewer details

SettingDefaultDetail
Show profile pictureonThe first chatter's picture. Off, the name stays where it was.
Show usernameonTheir display name, over the bottom of the picture.

Platform details

SettingDefaultDetail
Show platform icononThe Twitch, YouTube or Kick logo, next to the label.
Show labelonShows the line under the name, next to the platform icon.
Label text{platform} firstThat line. Only when Show label is on.

Score settings

SettingDefaultDetail
Show scoreonShows how many times they were first.
Score textTimes first: {count}That line. Only when Show score is on.

Both texts can use {platform} (the platform they were first on), {user} (their display name) and {count} (how many times they were first on that platform, this one included).

A tip box under them gives the score's Streamer.Bot variable, firstInChat, with a Copy button, to show it on the Viewer Cards too — see With the Viewer Cards.

Controls

What shows, hides and clears the widget is on the widget page's Controls tab, one row of its column each.

Automated controls

Three lists of Streamer.Bot triggers, each named like its button and picked like everywhere else in Stream UI — see Triggers.

ListDefaultDetail
ShownoneShows the widget in every overlay — a !first command, a channel point reward… With Stay on screen off, every current first shows for the show duration.
HidenoneHides the widget in every overlay until it is shown again — a scene change, for example. A hide survives a reload of the browser source.
Cleareach platform's stream startFrees the first spots, so the next first words take them.

Clear's default triggers:

Default triggerFrees
Twitch › Stream Onlinethe Twitch spot
YouTube › Broadcast Startedthe YouTube spot
Kick › Stream Onlinethe Kick spot

A platform's trigger frees that platform's spot. Any other trigger — a command, an OBS event… — frees all of them. Add, change or remove triggers with Add trigger.

Manual controls

Buttons to act on your browser source by hand, right away — also in the controls window:

ButtonWhat it does
Show / HideOne button, Hide while shown and Show while hidden: shows or hides the widget in every overlay and the preview, with its Show / hide transition, read live: Chat First: Shown or Hidden.
Clear (one per platform)Frees that platform's first spot.
Clear allFrees every spot. Only with more than one platform switched on.

They need Streamer.Bot connected and the Backend action. A Clear button is greyed out when its spot is already free.

Hidden, the widget still takes the first spots and counts them; with Stay on screen off, none pops up until it is shown again. Once it has left, its room goes to the other widgets of its position.

Whether it is shown is kept in Streamer.Bot as streamUi.off.chatfirst.display (1 hidden): your own actions can show or hide the widget by setting that persisted global variable.

Style

Each element follows the overlay style field by field: a field you change on the Style tab is the widget's own, with a reset arrow beside it. Every platform can also have its own look: pick it in Style for, beside the Global styles / Custom switch. See Appearance.

ElementDetail
ContainerThe list: the firsts side by side by default (its Direction; the podium sets it), lined up on the widget's position, Full width, 12 px between cards.
BackgroundThe box behind each first: its picture and texts centred under each other. Follows the overlay's Widgets background style.
PictureThe first chatter's profile picture. Twitch pictures need the Get Profile Pic action. Listed while Show profile picture is on.
Platform iconThe Twitch, YouTube or Kick logo, next to the label. Follows the overlay's Platform icons style. Listed while Show platform icon is on.
UsernameOver the bottom of the picture. Follows the overlay's Titles style. Long names are cut with "…". Listed while Show username is on.
LabelThe line under the name. Listed while Show label is on.
ScoreHow many times they were first. Listed while Show score is on.
Podium stepPodium only. The step under each first; the 2nd and 3rd are lower. Its 1st place extra height is added on top of the step's content, so 1st place is always the tallest (40 px by default; px, % of the canvas, em, vw or vh).
PlacePodium only. "1st", "2nd", "3rd" on the steps.
Show / hide transitionHow the firsts appear and leave.

Default position

Position Bottom right, as wide as the position, size 100 %. All of that is changed on the Overlay builder's Layout tab.

Streamer.Bot events it listens to

EventWhat it triggers
Twitch.FirstWordA first message on Twitch — takes the Twitch spot if it is free
YouTube.FirstWordsA first message on YouTube — takes the YouTube spot if it is free
Kick.FirstWordsA first message on Kick — takes the Kick spot if it is free
Misc.GlobalVariableUpdated, Misc.GlobalVariableCreatedThe widget shown or hidden elsewhere

Plus the triggers you picked in Show, Hide and Clear.

The Widget preview panel has a test button for each platform — Twitch first words, YouTube first words, Kick first words. They play in the preview only: nothing is saved and no count changes.

Custom event

The widget sends a custom event to Streamer.Bot every time a new chat first is detected. Use it as an action trigger to create your own interactions: thank them in chat, play a sound, give them channel points…

In Streamer.Bot, the trigger is Custom › Stream UI › New First in Chat. It is added by the Stream UI - Backend action: after importing the actions again, restart Streamer.Bot so the trigger appears.

VariableValueDetail
user%user%Their display name.
userLogin%userLogin%Their login.
userId%userId%Their id on the platform.
platform%platform%twitch, youtube or kick.
firstInChatCount%firstInChatCount%How many times they were first, this one included.

The viewers' profile pictures are saved as profilePic in their user variables. Get them from there if you need them.

With the Viewer Cards

The firstInChat count lives in Streamer.Bot, so the Viewer Cards can show it and unlock achievements with it.

  • On the cards: add a score to a platform's Score list, switch on Manage in Streamer.bot and paste firstInChat in Variable name. The card shows the count as it is.
  • For achievements and badges: pick the trigger User Global Variable Updated, type firstInChat in its User variable field, then add a condition on global.newValue — for example ≥ 10 for a badge after ten firsts.

The Viewer Cards read the viewer and the platform from the variable itself, so each platform's achievements follow that platform's count.