# StreamElements commands and their Bloopbot equivalents

Every default StreamElements command, from !points and !songrequest to !raffle, !nuke and !uptime, with what it does and how to do the same in Bloopbot.

Updated 15 October 2026

## The short answer

The StreamElements chatbot ships 69 default commands. They cover points (`!points`, `!watchtime`, `!top`), games (`!slots`, `!roulette`, `!duel`), raffles (`!raffle`, `!join`), song requests (`!songrequest`, `!skip`), the store (`!items`, `!redeem`), moderation (`!nuke`, `!permit`) and small extras such as `!8ball`, `!quote` and `!uptime`. Your own StreamElements chat commands are the ones you made in the Custom Commands panel. Bloopbot can bring those over for you, and it has an equivalent for most of the defaults, either built in or as a ready-made flow pack you switch on. The table below lists each StreamElements command, and says plainly where Bloopbot has nothing.

To move your own commands, use the importer. It reads your public StreamElements command list and turns each command into a flow, with its permission level, cooldowns and `${...}` variables, and you don’t sign in to StreamElements. [Import your commands](https://bloopbot.com/docs/coming-from-streamelements#import) walks through it.

## StreamElements’ default commands in Bloopbot

Every StreamElements command below comes from its [default commands list](https://docs.streamelements.com/chatbot/commands/default). In Bloopbot, a pack is a set of ready-made flows you add from **Flows** › **Marketplace**. Packs arrive paused, so switch on the ones you want.

| StreamElements command | What it does in StreamElements | In Bloopbot |
| --- | --- | --- |
| `!points`, `!watchtime`, `!top`, `!leaderboard` | Show a viewer’s points and rank, their watch time, the top users, and a link to the leaderboard | `!points`, `!watchtime` and `!top` from the **Loyalty** pack ([check points from chat](https://bloopbot.com/docs/loyalty-and-regulars#commands)). To show a leaderboard on stream, use the Leaderboard layer ([show a leaderboard on stream](https://bloopbot.com/docs/leaderboard-widget)) |
| `!givepoints` | Gives your points to another viewer | `!give name amount` in the **Loyalty** pack |
| `!addpoints`, `!setpoints` | Add points to a viewer, or set their balance | `!addpoints`, `!setpoints` and `!removepoints` for moderators, in the **Loyalty** pack |
| `!slots`, `!roulette`, `!duel`, `!accept` | Points games and duels | The same four commands in the **Minigames** pack, plus `!heist` ([play points games with chat](https://bloopbot.com/docs/points-minigames)) |
| `!deny`, `!cancelduel` | Turn down a duel, or cancel one you sent | No equivalent. A duel nobody accepts within a minute ends and the points go back ([how duels work](https://bloopbot.com/docs/points-minigames#duels)) |
| `!bet`, `!contest` | Bet points on a contest, and show its status | Moderators open a bet with `!bets` and viewers place theirs with `!bet`, from the **Minigames** pack. An open bet’s odds show on the games card on stream |
| `!bingo` | Emote bingo for points | No equivalent |
| `!raffle`, `!sraffle`, `!cancelraffle` | Start a multi-winner or single-winner raffle, or cancel one | `!giveaway open`, `close`, `draw` and `cancel` from the **Giveaway** pack, with one or more winners ([run a giveaway in chat](https://bloopbot.com/docs/giveaways)) |
| `!join`, `!ticket`, `!giveaway` | Enter a raffle, buy tickets, see the giveaway’s status | Viewers type `!enter`, or `!enter 3` for several tickets, or the giveaway’s keyword. In Bloopbot `!join` belongs to the viewer queue |
| `!songrequest`, `!song`, `!wrongsong` | Request a song, show the current one, remove your last request | `!sr song name`, `!song` and `!wrongsong` from the **Song requests** pack ([take Spotify song requests](https://bloopbot.com/docs/song-requests)) |
| `!next`, `!songqueue`, `!when` | Show the next song, link the queue, show your place | `!queue` shows upcoming songs, and `!srstatus` shows where you stand |
| `!skip`, `!removesong`, `!srclear` | Skip the song, remove one, clear the queue | `!skip` and `!remove 2` or `!remove @name` for moderators. Clear the queue with **Clear queue…** on the **Song requests** page |
| `!pause`, `!play`, `!volume`, `!voteskip` | Control the player and vote to skip | No equivalent. Bloopbot requests play through your own Spotify Premium account, so playback is controlled in Spotify |
| `!queue` | Manage a viewer queue for playing with the streamer | The **Viewer queue** pack: `!join`, `!leave`, `!waitlist`, and `!next` for moderators ([run a viewer queue](https://bloopbot.com/docs/viewer-queue)). In Bloopbot `!queue` shows the song queue |
| `!items`, `!redeem` | Link the store, redeem an item with points | `!store` lists what is for sale and `!buy name` buys it, from the **Points store** pack ([let viewers spend points](https://bloopbot.com/docs/points-store)) |
| `!openstore`, `!closestore`, `!enablesfx`, `!disablesfx` | Switch store items on or off | No single switch, and no separate sound-effect group. Untick **For sale** on an item, or switch the store flows off |
| `!alerts` | Mute, skip or pause overlay alerts | `!skip`, `!pause`, `!resume` and `!replay` for moderators, from the **Mod commands** pack ([control the queue while you are live](https://bloopbot.com/docs/alerts#live-controls)). Both that pack and the song pack use `!skip`, so rename one if you add both |
| `!editcounter` | Set, add to or take from a counter | `!deaths` and `!deaths +` (moderators) in the **Starter** pack, and you can copy the flow for `-` and `set` ([start from the Counter templates](https://bloopbot.com/docs/variables#counter-template)) |
| `!hypecup` | Clear the HypeCup list | No equivalent |
| `!setgame`, `!settitle` | Change the game category or stream title | `!game` and `!title` in the **Mod commands** pack ([add a helper flow](https://bloopbot.com/docs/moderation#helpers)) |
| `!timer` | Turn chat timers on or off | A moderators-only command flow with a **Turn flows on or off** step, pointed at your timer flows ([post a recurring chat message](https://bloopbot.com/docs/timers)) |
| `!permit` | Lets a viewer post a link for a short time | Built in for moderators: `!permit username`, 60 seconds unless you change it on **Moderation** |
| `!nuke` | Times out, bans or deletes messages that match text or a regex | `!nuke` in the **Mod commands** pack, with a phrase or `/regex/`, how far back to look, and timeout, delete or ban. Nukes can be rolled back from the **Nukes** page ([what moderators can do from chat](https://bloopbot.com/docs/editors#moderators)) |
| `!nukeusername`, `!votekick`, `!filesay`, `!level` | Nuke by username, vote to kick, send lines from a URL, override a permission level | No equivalent |
| `!vanish` | Times you out for a second to clear your messages | No ready-made flow. Build it as a command flow with a **Time out** step that acts on the viewer who typed it |
| `!bot`, `!module` | Mute or remove the bot, switch chatbot modules on or off | Nothing to type. Switch filters on **Moderation** and flows on **Flows**, and the bot joins when you connect your channel |
| `!command` | Add, remove or edit commands from chat | You make and change commands on **Flows**, in a form or on the canvas ([create your first chat command](https://bloopbot.com/docs/first-command)). There is no chat command for it |
| `!commands` | Links to your public command list | `!commands` replies with your public **Commands** page, from the **Commands link** flow in the **Starter** pack ([point viewers at your Commands page](https://bloopbot.com/docs/first-command#commands-link)) |
| `!8ball` | A random magic 8-ball answer | A command flow with a **Pick at random** step set to **One from a list** ([pick something at random](https://bloopbot.com/docs/variables#random)) |
| `!quote` | Show random quotes or manage the list | `!quote`, `!quote 2` and `!quote add` from the **Quotes** step ([save and share quotes](https://bloopbot.com/docs/quotes#command)) |
| `!emotecount`, `!emotes` | Count an emote’s use, list your emotes | No equivalent |
| `!kappagen` | An emote explosion on stream | The Emote Wall layer, with a **Rain emotes** step in any flow ([rain emotes from a flow](https://bloopbot.com/docs/emote-wall#rain)) |
| `!uptime` | How long the stream has been live | A command flow that replies with `$(data.stream.started_at_ago)`. The importer builds this one for you |
| `!accountage`, `!followage`, `!chatstats` | A viewer’s account age or follow time, and chat statistics | No equivalent |
| `!tip` | Links to your tipping page | A command flow with your link as its reply ([create your first chat command](https://bloopbot.com/docs/first-command)) |

## Your own commands and their variables

A command you made in StreamElements becomes a flow: a **Chat command** trigger, a check for its permission level or cooldowns, and a **Chat message** with the reply. StreamElements writes variables as `$(...)` or `${...}` and says the two are interchangeable. Bloopbot uses `$(...)`, and the importer rewrites each one it can answer.

| StreamElements variable | In Bloopbot |
| --- | --- |
| `${user}`, `${sender}`, `${source}` | `$(user)`, the viewer who typed the command |
| `${touser}` | `$(touser)`, the first word or the viewer |
| `${1}` to `${9}` | `$(1)` to `$(9)`. The rest of the message, `${1:}`, is `$(query)` |
| `${count}`, `${count deaths}`, `${getcount deaths}` | A declared variable that a **Set a variable** step changes, read back as `$(var.name)` ([keep a counter with variables](https://bloopbot.com/docs/variables)) |
| `${random.1-6}`, `${random.pick 'a' 'b'}`, `${random.chatter}` | A **Pick at random** step: **A number**, **One from a list** or **Someone in chat** |
| `${uptime}` | `$(data.stream.started_at_ago)` |
| `${game}` | `$(data.stream.category)` |
| `${title}`, `${status}` | `$(data.stream.title)` |
| `${channel}` | `$(channel)`, your channel’s login name |
| `${pointsname}`, `${user.points}` | `$(currencies)` and `$(points)`, from Bloopbot’s own loyalty points |
| `${math ...}` | A **Do some maths** step: add, subtract, multiply or divide |
| `${if ...}` | A **Switch on a word** step with a **Chat message** for each answer |
| `${customapi.https://...}` | A **Web request** step whose answer the reply reads |
| `${settitle ...}`, `${setgame ...}` | A **Set title or category** step |
| `${time}`, `${weather}`, `${repeat}`, `${ai}`, `${stockprice}`, `${queryescape}` and the emote lists | No equivalent. The importer keeps the reply as written and brings the command in paused |

[Variables](https://bloopbot.com/docs/coming-from-streamelements#variables-map) in the migration guide has the full list, including `${user.name}`, `${channel.followers}` and the viewer lookups. A field that takes variables also shows an **Insert…** menu with exactly what that step can read.

## What works differently

- **Loyalty points start fresh.** Bloopbot keeps its own balances, so a viewer’s StreamElements points don’t carry over. The importer brings commands over, but not points, timers, spam filters or quotes.
- **Commands live on a page, not in chat.** You build and edit them on **Flows**, where each one can do more than reply: add a check, keep a count, show an alert or start a poll.
- **Moderators still run the stream from chat.** `!permit`, `!filters`, `!blacklist` and `!whitelist` are built in for moderators, and packs add the rest.
- **Song requests use Spotify.** StreamElements’ queue plays YouTube links. Bloopbot’s plays through your own Spotify Premium account.
- **Overlays are separate.** StreamElements’ alerts and overlay widgets become Bloopbot overlays, each added to OBS as its own Browser Source ([move your overlay and alerts](https://bloopbot.com/docs/coming-from-streamelements#overlays)).
- **Only one bot should answer.** Once a Bloopbot flow does a command’s job, switch that command off in StreamElements, so chat doesn’t get two replies ([turn off the old bot](https://bloopbot.com/docs/coming-from-streamelements#switch-off)).

## Troubleshooting

- **A command gets two replies.** StreamElements is still answering it. Switch the command off in the StreamElements dashboard.
- **The importer doesn’t list a command.** It reads your public command list, so a command you hid there isn’t shown. Rebuild it by hand, or make it visible in StreamElements and run the importer again.
- **A moderator command does nothing.** Check the person has the moderator badge in your chat, and that the bot is a moderator too.
- **A reply shows `$(...)` text.** The variable isn’t declared on **Variables**, or the token is misspelled. Pick it from the **Insert…** menu instead of typing it.
- **The bot doesn’t answer at all.** Check the flow is switched on. [Troubleshooting](https://bloopbot.com/docs/troubleshooting) covers commands that stay silent.
