Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -199,14 +199,18 @@ export default defineConfig({
icon: 'comment',
items: [
{ label: 'Overview', slug: 'chatbot' },
{ label: 'Add to Your Channel', slug: 'chatbot/platforms' },
{ label: 'Getting Started', slug: 'chatbot/getting-started' },
{ label: 'User Management', slug: 'chatbot/user-management' },
{
label: 'Guides',
items: [
{ label: 'Death Counter', slug: 'chatbot/guides/death-counter' },
{ label: 'Lurk Command', slug: 'chatbot/guides/lurk-command' },
{ label: 'Countdown Command', slug: 'chatbot/guides/countdown-command' },
{ label: 'Viewer Input', slug: 'chatbot/guides/viewer-input' },
{ label: 'Bot Detection Command', slug: 'chatbot/guides/bot-detection' },
{ label: 'Run Ads via Chatbot', slug: 'chatbot/guides/run-ads' },
{ label: 'All guides', slug: 'chatbot/guides' },
],
},
Expand Down Expand Up @@ -254,6 +258,7 @@ export default defineConfig({
{ label: 'All guides', slug: 'selive/guides' },
] },
{ label: 'Troubleshooting', slug: 'selive/troubleshooting' },
{ label: 'Uninstalling SE.Live', slug: 'selive/uninstall' },
],
},
{
Expand All @@ -266,19 +271,25 @@ export default defineConfig({
{
label: 'Guides',
items: [
{ label: 'Build your first custom widget', slug: 'overlays/first-custom-widget' },
{ label: 'Add to your broadcast software', slug: 'overlays/broadcast-software' },
{ label: 'AlertBox alert variations', slug: 'overlays/alertbox-variations' },
{ label: 'Add a chat overlay', slug: 'overlays/chat-widget' },
{ label: 'KappaGen', slug: 'overlays/kappagen' },
{ label: 'Widget Data', slug: 'overlays/widget-data' },
{ label: 'Custom code in AlertBoxes', slug: 'overlays/custom-code-in-alertbox' },
],
},
{
label: 'Custom Widgets',
items: [
{ label: 'Build your first custom widget', slug: 'overlays/first-custom-widget' },
{ label: 'Code Editor', slug: 'overlays/widget-structure' },
{ label: 'SE_API Reference', slug: 'overlays/custom-widget' },
{ label: 'Widget Events', slug: 'overlays/events' },
{ label: 'Session Data Reference', slug: 'overlays/session-data' },
],
},
{ label: 'Troubleshooting', slug: 'overlays/troubleshooting' },
{ label: 'Editor Shortcuts', slug: 'overlays/overlay-editor-shortcuts' },
],
},
Expand Down
4 changes: 4 additions & 0 deletions src/content/docs/chatbot/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ import ChatExample from '@components/ChatExample.astro';

This guide walks you through the two most common ways to put the StreamElements Chatbot to work: creating your first custom command and setting up your first timer.

:::note[Bot not in your channel yet?]
Commands and timers only work once the bot has joined your channel — see [Add the Chatbot to Your Channel](/chatbot/platforms) first if you haven't done that yet.
:::

## Your first command

Commands are the main way users will interact with the bot in your chat. They can be used to trigger actions, or to display information to your users. In this example we will create a command that shows how long it has been since a user was last seen in chat.
Expand Down
46 changes: 46 additions & 0 deletions src/content/docs/chatbot/guides/bot-detection.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: Check if a User Is a Known Bot
sidebar:
label: Bot Detection Command
description: "Build a !bot command that checks whether a Twitch username is a known bot, using the $(customapi) variable and a third-party lookup service."
platforms: [twitch]
keywords:
- StreamElements bot detection
- known bot command
- Twitch bot check command
---

import { Steps } from '@astrojs/starlight/components';
import ChatExample from '@components/ChatExample.astro';

This command checks whether a username is a known bot, using [`$(customapi)`](/chatbot/variables/customapi) to query **Blocklist Buddy**, a community-run lookup service covering CommanderRoot's and TwitchInsights' known-bot lists.

:::note
Blocklist Buddy is a third-party, community-maintained service — not operated by StreamElements. It could change or become unavailable without notice.
:::

<Steps>

1. From the [bot command dashboard](https://streamelements.com/dashboard/bot/commands), open the "Custom commands" tab and click "Add new command".

2. Name the command `bot`, and set the reply to:

```streamelements
$(customapi https://zoeballz.uk/_Blocklist_Buddy/known_bot.php?user=$(sender)&bot=$(1)&channel=$(channel))
```

3. Click "Activate command".

</Steps>

Test it with `!bot <username>`:

<ChatExample messages={[
{ persona: 'user', message: '!bot some_suspicious_account' },
{ persona: 'bot', message: 'According to @BlocklistBuddy, some_suspicious_account is listed as a KNOWN BOT on CommanderRoot\'s Known Bot List.' }
]} />

## Related

- [`$(customapi)`](/chatbot/variables/customapi): the variable this command is built on.
- [Custom Commands](/chatbot/commands/custom): everything else you can do with custom commands.
10 changes: 10 additions & 0 deletions src/content/docs/chatbot/guides/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,14 @@ These guides combine chatbot commands, variables, and settings into complete fea
href="/chatbot/guides/viewer-input"
description="Capture words from chat, add fallbacks and validation, and encode input for URLs."
/>
<LinkCard
title="Bot Detection Command"
href="/chatbot/guides/bot-detection"
description="Check whether a username is a known bot using a third-party lookup service."
/>
<LinkCard
title="Run Ads via Chatbot"
href="/chatbot/guides/run-ads"
description="Run Twitch ads automatically on a timer, or manually with a command."
/>
</CardGrid>
44 changes: 44 additions & 0 deletions src/content/docs/chatbot/guides/run-ads.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: Run Ads via the Chatbot
sidebar:
label: Run Ads via Chatbot
description: "Run Twitch ads automatically on a timer, or manually with a chat command, using the StreamElements Chatbot."
platforms: [twitch]
keywords:
- StreamElements run ads
- Twitch commercial command
- automatic ads Twitch
---

import { Steps } from '@astrojs/starlight/components';

Both timers and commands can send Twitch's `/commercial` action, letting the chatbot start an ad break for you.

:::note[Prerequisite]
Add the StreamElements bot as an **Editor** on your [Twitch roles page](https://dashboard.twitch.tv/community/roles) — without Editor access, it can't run ads on your behalf.
:::

## Automatically, on a timer

<Steps>

1. Create a new [timer](/chatbot/timers) with the response:

```
/commercial 30
```

Replace `30` with your preferred ad duration in seconds: `30`, `60`, `90`, `120`, `150`, or `180`.

2. Set the **online interval** to how often you want ads to run. For example, an interval of 10 minutes with a `30`-second duration runs a 30-second ad every 10 minutes you're live.

</Steps>

## Manually, with a command

Create a [custom command](/chatbot/commands/custom) — for example `!ad` — with the response `/commercial 30`. Typing `!ad` (restrict this to moderators) runs a 30-second ad on demand.

## Related

- [Timers](/chatbot/timers): the full timer reference, including offline interval and conditions.
- [Custom Commands](/chatbot/commands/custom): managing commands from the dashboard or chat.
10 changes: 10 additions & 0 deletions src/content/docs/chatbot/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,21 @@ import { CardGrid, LinkCard } from '@astrojs/starlight/components';
The StreamElements Chatbot is a chatbot for Twitch and YouTube Live. It provides custom commands, automated timers, spam filters, and interactive modules, all configured from your StreamElements dashboard.

<CardGrid>
<LinkCard
title="Add to Your Channel"
href="/chatbot/platforms"
description="Add the chatbot to Twitch, YouTube, or Kick and grant it moderator permissions."
/>
<LinkCard
title="Getting Started"
href="/chatbot/getting-started"
description="Create your first custom command and timer."
/>
<LinkCard
title="User Management"
href="/chatbot/user-management"
description="Permission levels, and how to give specific viewers elevated access."
/>
<LinkCard
title="Guides"
href="/chatbot/guides"
Expand Down
123 changes: 123 additions & 0 deletions src/content/docs/chatbot/platforms.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
---
title: Add the Chatbot to Your Channel
sidebar:
label: Add to Your Channel
description: "Add the StreamElements Chatbot to your Twitch, YouTube, or Kick channel and grant it moderator permissions."
keywords:
- add StreamElements chatbot
- StreamElements bot Twitch
- StreamElements bot YouTube
- StreamElements bot Kick
- chatbot moderator permissions
---

import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';

Before you can create commands or timers, the chatbot needs to join your channel and have moderator permissions — without mod status, Twitch and Kick's AutoMod can silently block parts of its messages (for example, links posting as `***`).

<Tabs syncKey="platform">

<TabItem label="Twitch">

<Steps>

1. Open your [bot settings page](https://streamelements.com/dashboard/bot/settings) and click **Join**.

2. In your Twitch chat, type:

```
/mod streamelements
```

</Steps>

### FAQ

**Can the bot use my subscriber emotes?**
Only if it has an active subscription to your channel — you or someone else needs to gift it one.

**The bot isn't responding.**
Make sure it isn't banned: type `/unban streamelements` in your chat. If events are also missing from your Activity Feed, see [Events missing from the Activity Feed](#events-missing-from-the-activity-feed) below. Otherwise see [Troubleshooting](/chatbot/troubleshooting).

### Events missing from the Activity Feed

Twitch now requires chat access to deliver some events, so a banned or parted bot can cause them to stop appearing in your Activity Feed. If that happens:

<Steps>

1. Unban and mod the bot (`/unban streamelements` then `/mod streamelements`) so other bots can't re-ban it.
2. Log out of the StreamElements dashboard and log back in with your Twitch account, to refresh the permissions needed to read subscription and other events.
3. Part and re-join the bot from your channel to confirm it's present. You can disable its timers and commands afterward if you don't want it posting.

</Steps>

</TabItem>

<TabItem label="YouTube">

:::note[Before you start]
Your stream must be **public** and **live** — the bot can't join a private, unlisted, or offline stream.
:::

<Steps>

1. Open [YouTube Studio](https://studio.youtube.com/).
2. Go to **Settings > Community**.
3. Under moderators, add either of these as a moderator:
- `https://youtube.com/c/streamelements`
- `https://www.youtube.com/channel/UCjerlCIbLPQwSnYlClkjDXg`
4. While live, view **Live chat** rather than **Top chat** — Top chat can hide the bot's messages.

</Steps>

### FAQ

**Can I change the bot's display name?**
No, this isn't possible on YouTube.

**Some chatbot features are missing.**
Giveaways, the Stream Store, Viewer Queue, and Media Requests all depend on the Loyalty system, which isn't currently available for YouTube accounts.

**Some events don't show up in Chat Alerts or the Activity Feed.**
Events are only captured while you're live, and tracking doesn't work correctly if you run two streams at the same time.

**The bot didn't join my channel when I went live.**
Confirm your stream is public, that you're shown as live in the StreamElements dashboard, and that you added the correct StreamElements channel as a moderator.

</TabItem>

<TabItem label="Kick">

<Steps>

1. Open your [bot settings page](https://streamelements.com/dashboard/bot/settings) and click **Join**.
2. In your Kick chat, type:

```
/mod @StreamElements
```

</Steps>

### FAQ

**Can the bot use my subscriber emotes?**
Only if it has an active subscription to your channel — you or someone else needs to gift it one.

**The bot isn't responding.**
Type `/unban @StreamElements` in your chat, and confirm the bot is still connected to your Kick account under bot settings.

**Why isn't the bot posting alerts or responding to commands?**
Usually one of: the bot is offline (try reconnecting it), it's missing moderator status in your chat, or there's a typo in the command name.

**Can the bot automatically ban or time out users?**
Not on its own — but moderators can trigger bulk timeouts or bans with [`!nuke`](/chatbot/commands/default/nuke) and [`!nukeusername`](/chatbot/commands/default/nukeusername).

</TabItem>

</Tabs>

## Next steps

- [Create your first command or timer](/chatbot/getting-started)
- [Troubleshooting](/chatbot/troubleshooting)
1 change: 1 addition & 0 deletions src/content/docs/chatbot/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ This section helps you quickly resolve common issues you might encounter with th
- Check that the bot is currently active in your channel. Go to your StreamElements dashboard and ensure the bot is turned on.
- Ensure the bot is not banned or ignored in your channel. Sometimes the bot might have been accidentally banned, which prevents it from posting messages.
- Check that the bot has not been muted with [`!bot mute`](/chatbot/commands/default/bot). A muted bot sends no command responses or timer messages; use `!bot unmute` to restore it.
- If the bot was never added to your channel, or lost moderator status, see [Add the Chatbot to Your Channel](/chatbot/platforms) for per-platform setup, including what to do if the bot is missing from your Activity Feed.

## Commands not working

Expand Down
48 changes: 48 additions & 0 deletions src/content/docs/chatbot/user-management.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: User Management
description: "StreamElements Chatbot permission levels, and how to manually assign a user to a group from the dashboard."
keywords:
- StreamElements user levels
- chatbot permission levels
- Regular user Twitch bot
- Super Moderator StreamElements
---

Every command has a required **user level** — the minimum permission a viewer needs to use it. Most viewers get a level automatically based on their platform role:

| Group | Level | How it's assigned |
|---|---|---|
| Everyone | 100 | Default for every chat user |
| Subscriber | 250 | Automatic for your platform subs |
| Regular | 300 | Set manually, see below |
| VIP | 400 | Automatic for Twitch VIPs |
| Moderator | 500 | Automatic for your platform mods |
| Super Moderator | 1000 | Set manually, see below |

The broadcaster always sits above every level and can trigger any command, regardless of its required level.

These are the same six values used throughout the chatbot — in [`!level`](/chatbot/commands/default/level), and in `!command options -level` (see [`!command`](/chatbot/commands/default/command)).

## Setting a command's user level

Set a command's required level from its **Advanced settings** in the dashboard, or with [`!command options`](/chatbot/commands/default/command):

```streamelements
!command options !socials -level 500
```

## Adding a user to Regular or Super Moderator

Regular and Super Moderator aren't tied to a platform role, so you assign them yourself:

- **From the dashboard:** go to **Chatbot > User Management**, click **Add new bot user**, enter their username, and assign a group.
- **From chat:** moderators and the broadcaster can use [`!level`](/chatbot/commands/default/level):

```streamelements
!level RegularViewer 300
```

## Related

- [`!level`](/chatbot/commands/default/level): check or set a user's level from chat.
- [Custom Commands](/chatbot/commands/custom): set a command's level when creating or editing it.
Loading
Loading