Overlay Widgets

Overlay Widgets are visual elements that can be shown on your Firebot overlay.

You can access Overlay Widgets in the main navigation sidebar under Triggers.

Overlay Widgets are useful when you want something visible on stream, such as chat, text, images, counters, countdowns, progress bars, or custom widgets.


Creating an Overlay Widget

To create a new widget, click New Overlay Widget in the Overlay Widgets tab. This opens the widget editor.

The widget editor lets you choose the widget type, name the widget, choose an overlay instance, configure the widget settings, and set where it should appear on the overlay.

Available widget types include:

  • Chat
  • Chat (Advanced)
  • Countdown Timer (Dynamic)
  • Countdown to Date
  • Counter Display
  • Current Date / Time
  • Custom Widget
  • Custom Widget (Advanced)
  • Image
  • Progress Bar
  • Text

Click Save when you are finished.


Widget Position

Most widgets share the same position controls.

The position editor lets you place and resize the widget inside the overlay canvas. You can drag the widget, resize it, or enter exact values.

OptionWhat it does
Overlay InstanceSelects which overlay instance the widget belongs to.
X Position (px)Sets the widget's horizontal position in pixels.
Y Position (px)Sets the widget's vertical position in pixels.
Width (px)Sets the widget width in pixels.
Height (px)Sets the widget height in pixels.
Z-indexControls the widget's layer order.

Use Z-index when widgets overlap. A higher value appears above a lower value.


Chat

The Chat widget shows Twitch chat on your overlay.

Use this when you want a regular chat feed on stream without writing custom HTML or CSS.

Display Options

OptionWhat it does
Show TimestampsShows timestamps next to chat messages.
Show Viewer AvatarsShows the chatter's profile image next to their message.
Show Chat BadgesShows Twitch badges such as sub badges, Bits badges, and other chat badges.
Show PronounsShows chatter pronouns when available from Twitch Chat Pronouns.
Show Shared Chat MessagesShows messages sent from other channels during a shared chat session.
Show AnnouncementsShows chat announcements sent by the streamer or moderators.

Message Timing

OptionWhat it does
Add Message DelayDelays messages before they are sent to the widget. Useful for moderation.
New Message Entry AnimationSets the animation used when new messages appear.
Automatically Remove MessagesRemoves messages from the widget after a set amount of time.

Message Layout

OptionWhat it does
Message StyleControls how usernames and messages are shown.
CompactShows the username and message on the same line.
Modern (Expanded)Shows the username and message on separate lines.
Chat OrderControls where new messages appear.
NormalNew messages appear at the bottom of the feed.
ReversedNew messages appear at the top of the feed.

Message Types

OptionWhat it does
Action Display FormatControls how /me messages are displayed.
ModernShows action text like normal chat text, but italicized.
ClassicShows action text in the username color, but not italicized.
Highlighted Message StyleControls how highlighted Twitch messages are displayed.
NormalHighlighted messages look like regular chat messages.
HighlightedHighlighted messages use a different background color.

Filtering and Emotes

OptionWhat it does
Enabled Third-Party Emote ProvidersEnables supported third-party emote providers.
BTTVEnables BetterTTV emotes.
7TVEnables 7TV emotes.
FFZEnables FrankerFaceZ emotes.
Hidden UsersHides messages from selected usernames.

Alignment and Spacing

OptionWhat it does
Horizontal AlignmentAligns chat messages left or right inside the widget area.
Vertical AlignmentAligns chat messages to the top or bottom inside the widget area.
Space Between MessagesSets the spacing between messages in pixels.

Font Options

OptionWhat it does
Username Font OptionsControls username font, size, weight, and italic styling.
Chat Message Font OptionsControls message font, color, size, weight, and italic styling.

Chat (Advanced)

The Chat (Advanced) widget shows Twitch chat on your overlay using custom HTML and CSS.

Use this when you want to build your own chat layout instead of using the standard Chat widget.

CSS Template

The CSS Template field is where you add CSS styles and custom CSS classes for the widget.

Firebot automatically puts this CSS inside a <style> tag.

FieldWhat it inserts
{{messageContainerClass}}The chat message container <div> created by the widget. New messages are added inside this element.
{{messageClass}}The message <div> created by the widget for a single chat message.

Message HTML Templates

The Default Message HTML Template controls the HTML used when Firebot creates normal chat messages.

FieldWhat it inserts
{{avatarUrl}}URL for the chatter's avatar.
{{badges}}HTML for chat badges. Each badge is converted to an <img> tag.
{{chatMessage}}Chat message with formatted emotes and cheermotes.
{{chatMessageRawText}}Raw chat message text without formatting for emotes or cheermotes.
{{pronouns}}Chatter's pronouns, if set.
{{timestamp}}Timestamp of when the message was sent.
{{username}}Chatter's display name.
{{usernameColor}}Chatter's username color in hex format, such as #0066FF.

Action Messages

The Action HTML Template controls the HTML used for /me messages.

Enable Use Separate Template for Actions when you want /me messages to look different from normal chat messages.

Highlighted Messages

The Highlighted Message HTML Template controls the HTML used for messages sent with Twitch's Highlight My Message Channel Reward.

Enable Use Separate Template for Highlighted Messages when you want highlighted messages to use different HTML from normal chat messages.

Message Options

OptionWhat it does
Show Shared Chat MessagesShows messages sent from other channels during a shared chat session.
Show AnnouncementsShows chat announcements sent by the streamer or moderators.
Add Message DelayDelays messages before they are sent to the widget. Useful for moderation.
New Message Entry AnimationSets the animation used when new messages appear.
Automatically Remove MessagesRemoves messages from the widget after a set amount of time.

Emotes and Filtering

OptionWhat it does
Enabled Third-Party Emote ProvidersEnables supported third-party emote providers.
BTTVEnables BetterTTV emotes.
7TVEnables 7TV emotes.
FFZEnables FrankerFaceZ emotes.
Hidden UsersHides messages from selected usernames.

Countdown Timer (Dynamic)

The Countdown Timer (Dynamic) widget shows a countdown timer on your overlay.

Use this when you want a timer that can be controlled dynamically by Firebot effects instead of only being set once in the widget settings.

Animation Options

OptionWhat it does
Entry AnimationSets the animation used when the timer shows.
Exit AnimationSets the animation used when the timer hides.

Timer Display

OptionWhat it does
Font OptionsControls the timer font, color, size, weight, and italic styling.
Text AlignmentAligns the countdown text left, center, or right inside the widget area.

Timer Behavior

OptionWhat it does
Run When InactiveKeeps the countdown running when the widget is not active or visible.
On Complete EffectsRuns effects when the countdown reaches zero.

Countdown to Date

The Countdown to Date widget shows a countdown to a specific date and time on your overlay.

Use this when you want a fixed countdown for something like a stream event, launch, birthday, deadline, or scheduled reveal.

Countdown Settings

OptionWhat it does
Target Date/TimeSets the date and time the countdown should reach zero.
FormatControls how the remaining time is displayed.
SimpleShows the timer in a compact format, such as 8:35:42.
Human-readableShows the timer in words, such as 8 hours, 35 minutes, 42 seconds.

Animation Options

OptionWhat it does
Entry AnimationSets the animation used when the timer shows.
Exit AnimationSets the animation used when the timer hides.

Timer Display

OptionWhat it does
Font OptionsControls the timer font, color, size, weight, and italic style.
Horizontal AlignmentAligns the countdown text left, center, or right.
Vertical AlignmentAligns the countdown text to the top, center, or bottom.

Completion

OptionWhat it does
On Complete EffectsRuns effects when the countdown reaches zero.

Counter Display

The Counter Display widget shows the value of a Firebot counter on your overlay.

Use this when you want a counter visible on stream, such as deaths, wins, attempts, streaks, or any other number you track with Firebot.

Counter

OptionWhat it does
CounterSelects which Firebot counter value should be shown in the widget.

Animation Options

OptionWhat it does
Entry AnimationSets the animation used when the counter shows.
Exit AnimationSets the animation used when the counter hides.

Counter Value

OptionWhat it does
Counter Font OptionsControls the counter value font, color, size, weight, and italic style.

Counter Name

OptionWhat it does
Show Counter NameShows the counter name above the counter value.
Counter Name Font OptionsControls the counter name font, color, size, weight, and italic style.

Text Alignment

OptionWhat it does
Text AlignmentAligns the counter text left, center, or right in the widget area.

Current Date / Time

The Current Date / Time widget shows the current date, time, or both on your overlay.

Use this when you want a clock, date label, stream timestamp, or any other live time display.

Format

OptionWhat it does
FormatControls how the current date and time are displayed. Uses Luxon formatting rules.

Example format: DD h:mm:ss a

Animation Options

OptionWhat it does
Entry AnimationSets the animation used when the widget shows.
Exit AnimationSets the animation used when the widget hides.

Date and Time Display

OptionWhat it does
Font OptionsControls the font, color, size, weight, and italic style.
Horizontal AlignmentAligns the text left, center, or right in the widget area.
Vertical AlignmentAligns the text to the top, center, or bottom of the widget area.

Custom Widget

The Custom Widget lets you build your own overlay widget with HTML and JavaScript.

Use this when the built-in widgets do not cover what you need, or when you want a widget that reacts to Firebot effects.

Widget Code

OptionWhat it does
HTMLSets the initial HTML shown inside the widget.
onShow JSRuns JavaScript when the widget is shown. Runs inside an async function, so await is supported.
onStateUpdate JSRuns JavaScript when the widget state is updated by the Set Custom Widget State effect.
onMessage JSRuns JavaScript when the widget receives a message from the Send Message to Custom Widget effect.

Available JS Values

These values are available in onShow JS and onStateUpdate JS.

ValueWhat it is
containerElementThe root HTML element of the widget.
widgetIdThis widget's unique ID.
widgetStateThe current state of the widget, if any.
utils.sendMessageToFirebot(messageName: string, messageData?: any)Sends a message back to Firebot.

These values are available in onMessage JS.

ValueWhat it is
containerElementThe root HTML element of the widget.
widgetIdThis widget's unique ID.
widgetStateThe current state of the widget, if any.
messageNameThe name of the received message.
messageDataThe data sent with the message, if any.
utils.sendMessageToFirebot(messageName: string, messageData?: any)Sends a message back to Firebot.

Animation Options

OptionWhat it does
Entry AnimationSets the animation used when the widget shows.
Exit AnimationSets the animation used when the widget hides.

Custom Widget (Advanced)

Custom Widget (Advanced) gives you one event script instead of separate scripts for showing, state updates, messages, and removal.

Use this when you want full control over how the widget reacts to overlay events.

Event Script

OptionWhat it does
onEvent JSRuns JavaScript when the widget receives any event. Runs inside an async function, so await is supported.

Event Names

The eventName value tells you what happened.

Event nameWhen it runs
showThe widget is shown.
settings-updateThe widget settings are updated.
state-updateThe widget state is updated.
messageThe widget receives a message.
removeThe widget is removed.

Available JS Values

ValueWhat it is
eventNameThe name of the received event. Can be show, settings-update, state-update, message, or remove.
widgetIdThis widget's unique ID.
widgetStateThe current state of the widget, if any.
messageNameThe name of the received message. Only available when eventName is message.
messageDataThe data sent with the message, if any. Only available when eventName is message.
overlayWrapperElementThe official root element of the overlay. Use this for DOM changes.
utils.stylesToString(styles)Converts a styles object to an inline CSS string.
utils.sendMessageToFirebot(messageName: string, messageData?: any)Sends a message back to Firebot.

Image

The Image widget shows an image on your overlay.

Use this for static graphics, logos, character art, panels, sponsor images, or any image you want to place on stream.

Image Source

OptionWhat it does
Image TypeChooses whether the image comes from a local file or a URL.
Local FileUses an image file from your computer.
URLUses an image from an external image URL.
Image FileLets you choose the local image file when Local File is selected.
Image URLSets the image URL when URL is selected.

Animation Options

OptionWhat it does
Entry AnimationSets the animation used when the image appears.
Exit AnimationSets the animation used when the image hides.

Progress Bar

The Progress Bar widget shows a value as a filled bar.

Use this for goals, counters, timers, health bars, donation progress, event progress, or anything else that needs a visual fill amount.

Display Options

OptionWhat it does
TitleSets the text shown with the progress bar.
Current Value DisplayControls how the current value is shown in the center of the bar.
HideDoes not show the current value.
Raw ValueShows the current value as a number.
PercentageShows the current value as a percentage.
Show Max ValueShows the maximum value at the end of the bar.
Value PrefixAdds text before values, such as $, #, or another prefix. This is not shown when using Percentage.

Font Options

OptionWhat it does
Font OptionsControls the font used for the text on the progress bar.
NameSets the font family.
ColorSets the text color.
SizeSets the text size in pixels.
WeightSets the font weight.
ItalicMakes the text italic.

Bar Style

OptionWhat it does
Track ColorSets the background color behind the filled part of the bar.
Bar ColorSets the fill color of the progress bar.
End Cap StyleSets the shape of the bar ends.
RoundedUses rounded bar ends.
SquaredUses square bar ends.
Bar OrientationSets the overall direction of the bar.
HorizontalDisplays the bar sideways.
VerticalDisplays the bar up and down.
Fill DirectionSets which direction the bar fills as progress increases.
Left to RightFills the bar from left to right.
Right to LeftFills the bar from right to left.

Values

OptionWhat it does
Minimum ValueSets the value where the bar starts.
Maximum ValueSets the value where the bar is full.

Effects

OptionWhat it does
On Update EffectsRuns effects when the progress bar value is updated.
On Complete EffectsRuns effects when the progress bar reaches its maximum value.

Text

The Text widget shows a line of custom text on the overlay.

Use this for labels, stream messages, scene text, reminders, social links, or any short text you want to place on screen.

Text Content

OptionWhat it does
TextSets the text shown by the widget.

Font Options

OptionWhat it does
Font OptionsControls how the text looks.
NameSets the font family.
ColorSets the text color.
SizeSets the text size in pixels.
WeightSets the font weight.
ItalicMakes the text italic.

Alignment

OptionWhat it does
Horizontal AlignmentSets the text position from left to right inside the widget area.
LeftAligns the text to the left.
CenterCenters the text horizontally.
RightAligns the text to the right.
Vertical AlignmentSets the text position from top to bottom inside the widget area.
TopAligns the text to the top.
CenterCenters the text vertically.
BottomAligns the text to the bottom.

Editing an Overlay Widget

Existing widgets are shown in the Overlay Widgets tab. Each row shows the widget name, tags, and active status.

To manage a widget, click the three dot menu on the widget or right-click the widget row.

OptionWhat it does
EditOpens the widget editor so you can change the widget.
Enable / DisableTurns the widget on or off.
DuplicateCreates a copy of the widget.
DeleteDeletes the widget.
Move toMoves the widget up or down for organizing.

Overlay Widget Effects

Firebot includes effects that can control Overlay Widgets from commands, events, hotkeys, Channel Rewards, Power-Ups, and other triggers.

EffectWhat it does
Toggle Overlay WidgetsToggles, enables, or disables selected overlay widgets.
Update Overlay Widget SettingsUpdates or resets settings on an existing overlay widget.
Send Message to Custom WidgetSends a named message to a Custom Widget or Custom Widget (Advanced).
Set Custom Widget StateUpdates the stored state for a Custom Widget or Custom Widget (Advanced).

Use these effects when a widget should change because something happened in Firebot.

For example, a hotkey can enable an image widget, a Channel Reward can update a progress bar, or a command can send JSON data to a custom widget.


Send Message to Custom Widget

The Send Message to Custom Widget effect sends a named message to a Custom Widget or Custom Widget (Advanced) overlay widget.

Use this when you want an effect to tell a widget to do something, such as show a new value, play an animation, update text, or react to a command.

OptionWhat it does
Custom WidgetSelects which custom widget receives the message.
NameSets the message name sent to the widget.
Data (JSON)Optional JSON data sent with the message.

Set Custom Widget State

The Set Custom Widget State effect updates the stored state for a Custom Widget or Custom Widget (Advanced) overlay widget.

Use this when the widget needs to remember data, such as a score, setting, name, list, timer state, or anything else the widget should keep track of.

OptionWhat it does
Custom WidgetSelects which custom widget receives the state update.
New State JSONSets the new widget state. Must be valid JSON.
Merge with existing state, if anyMerges the new state into the existing state instead of replacing it.

Toggle Overlay Widgets

The Toggle Overlay Widgets effect changes the active status of selected overlay widgets.

Use this when you want an event, command, hotkey, or other trigger to toggle, enable, or disable one or more overlay widgets.

OptionWhat it does
ModeControls how the selected overlay widgets should change.
ToggleSwitches each selected widget to the opposite active state.
EnableMakes the selected widgets active.
DisableMakes the selected widgets inactive.
Overlay WidgetsSelects which overlay widgets the effect should change.

Update Overlay Widget Settings

The Update Overlay Widget Settings effect changes settings for an existing overlay widget.

Use this when you want an effect to move a widget, change its z-index, switch its overlay instance, update widget-specific settings, or reset the widget's settings.

OptionWhat it does
Overlay Widget to UpdateSelects which overlay widget should be updated.
ModeControls whether settings are updated or reset.
UpdateUpdates selected widget settings with new values.
ResetResets the widget settings to default values.

Update Mode

When Update is selected, Firebot shows update options for the selected widget.

OptionWhat it does
Save ChangesSaves the updated settings so they persist.
CustomizeSelects which parts of the widget should change.

Customize Options

The available options depend on the selected widget type.

OptionWhat it does
Edit PositionLets the effect change the widget position and size.
Edit z-indexLets the effect change the widget's layer order.
Edit Overlay InstanceLets the effect move the widget to another overlay instance.
Edit HTMLLets the effect change the HTML for a Custom Widget.
Edit onShow JSLets the effect change the Custom Widget's onShow JS code.
Edit onStateUpdate JSLets the effect change the Custom Widget's state update code.
Edit onMessage JSLets the effect change the Custom Widget's message code.

Reset Mode

When Reset is selected, Firebot resets the selected widget's settings to their default values.


Widget Events

Widget events are internal overlay events that custom widgets can receive and react to.

The Custom Widget type splits these into separate script fields, such as onShow JS, onStateUpdate JS, and onMessage JS.

The Custom Widget (Advanced) type uses one onEvent JS field and gives you the event name.

Event nameWhen it runs
showThe widget is shown.
settings-updateThe widget settings are updated.
state-updateThe widget state is updated.
messageThe widget receives a message.
removeThe widget is removed.

Overlay Widget Variables

Overlay Widgets can be read from supported variable fields with $overlayWidgetState[].

VariableWhat it does
$overlayWidgetState[nameOrId]Gets the state of an overlay widget.
$overlayWidgetState[nameOrId, path.to.value]Gets a nested value from an overlay widget state.

Use this when another effect, condition, command, or message needs to read data stored in a widget state.


Overlay Widget Example: Toggle a Widget with a Hotkey

You want a hotkey that toggles an overlay widget on or off.

  1. Open Overlay Widgets in Firebot.
  2. Create or edit the widget you want to control.
  3. Open Hotkeys.
  4. Create or edit the hotkey you want to use.
  5. Add a Toggle Overlay Widgets effect.
  6. Set Mode to Toggle.
  7. Select the overlay widget you want the hotkey to control.
  8. Click Save.

When you press the hotkey, Firebot will run the effect and toggle the selected overlay widget.