StreamElements Commands
StreamElements has about 70 default commands, such as !uptime, !followage, !points and !song. Moderators add custom commands from chat with !command add !name response (or the shorter !cmd add), or in the dashboard under Chatbot → Chat Commands → Custom commands. Variables like $(user), $(touser) and $(count) fill in live values.
Manage custom commands from chat
Moderators and the broadcaster can create and change commands without opening the dashboard. !cmd works anywhere !command does.
| Action | Example |
|---|---|
| Add | !cmd add !socials Follow me on X: https://x.com/yourname |
| Edit | !cmd edit !socials Check out my links: https://example.com/links |
| Remove | !cmd remove !socials (also delete, del, rem) |
| Show settings | !cmd show !socials |
| Add alias | !cmd alias add !socials !links |
| Remove alias | !cmd alias remove !socials !links |
| Set options | !cmd options !socials -cd 10 -usercd 30 -level 100 |
Command options
Use !command options !name followed by one or more flags:
| Flag | What it sets |
|---|---|
-cd 10 | Global cooldown in seconds (nobody can use it again until it expires). |
-usercd 30 | Per-user cooldown in seconds. |
-level 500 | Minimum access level: 100 Everyone, 250 Subscriber, 300 Regular, 400 VIP, 500 Moderator, 1000 Super Moderator. |
-cost 50 | Loyalty points charged per use (needs the Loyalty system enabled). Users without enough points get no reply. |
-type whisper | How the bot answers: say (default), reply, mention or whisper. |
-trigger !links | Renames the command. |
-enable / -disable | Turns the command on or off. |
-count 0 | Sets the command’s usage counter, used by $(count). |
Add a command in the dashboard
- In the StreamElements dashboard, open Chatbot → Chat Commands and select the Custom commands tab.
- Click Add new command.
- Type the name in Command name (for example
lurk) and pick a User level. - Enter the response in the Reply field. Optionally change Response type to Say, Mention, Reply or Whisper.
- Under Advanced settings, add aliases, a global or user cooldown, a points cost, or conditions such as only running while you’re live.
- Click Activate command.
StreamElements variables
Variables are written $(name), and the brace form ${name} is interchangeable: ${user} is the same as $(user). They can be nested, like $(weather ${1:}).
| Variable | Outputs |
|---|---|
$(sender) | Display name of whoever used the command. |
$(user) | The name typed after the command, or the sender. Sub-fields: $(user.points), $(user.lastseen), $(user.time_online), $(user.level) and more. |
$(touser) | First word after the command exactly as typed (an @ is kept), or the sender’s name. |
$(1), $(1:), $(2:4) | Words of the message by position; $(1:) is word 1 to the end. $(1|everyone) sets a fallback. |
$(count) | Increments and shows a counter. $(count deaths) uses a named counter; +5, -1 or 0 after the name adjusts or sets it. |
$(getcount deaths) | Shows a counter without changing it. |
$(uptime) | How long the stream has been live, or <not live>. Accepts a channel name. |
$(game) / $(title) | Current category / stream title. Both accept a channel name, e.g. $(game shroud). |
$(channel.followers) | Channel data. Other fields: display_name, viewers, chatters, subs (own channel), uptime. |
$(random.1-6) | Random number in a range. $(random) alone is 1 to 100. |
$(random.pick a b c) | One random item. Quote multi-word items or use a,b,c. |
$(random.chatter) / $(random.emote) | A random active chatter / a random channel or global emote. |
$(customapi https://...) | First 400 bytes of a URL’s response (GET only). Alias: $(urlfetch). |
$(time America/New_York) | Current 24-hour time in a timezone (UTC if none). $(time.until 19:00) counts down. |
$(if condition then else) | Conditional output. |
$(math 2*3.9) | Calculation result. |
$(pointsname) | Your loyalty points name. |
Ready-to-copy StreamElements commands
Paste these into your chat as a moderator or the broadcaster. Swap in your own links and names.
| Command | Paste this in chat |
|---|---|
| !discord | !cmd add !discord Join the community Discord: https://discord.gg/yourinvite |
| !socials | !cmd add !socials YouTube: https://youtube.com/@you | TikTok: https://tiktok.com/@you | X: https://x.com/you |
| !lurk | !cmd add !lurk $(sender) is lurking. Thanks for keeping the stream company! $(random.emote) |
| !hug | !cmd add !hug $(sender) gives $(touser) a big warm hug! |
| !stream | !cmd add !stream The stream has been live for $(uptime). We're playing $(channel.game) for $(channel.viewers) viewers! |
| !followers | !cmd add !followers $(channel.display_name) has $(channel.followers) followers |
| !so | !cmd add !so Check out ${1}, they are playing $(game ${1}) at https://twitch.tv/${1} |
| !death (mods) | !cmd add !death Deaths: $(count deaths) |
| !deaths | !cmd add !deaths We have died $(getcount deaths) times so far |
| !resetdeaths (mods) | !cmd add !resetdeaths Death counter reset ($(count deaths 0)) |
| !dice | !cmd add !dice $(sender) rolls the dice... it's a $(random.1-6)! |
| !coinflip | !cmd add !coinflip $(sender) flipped a coin: $(if $(random.pick 1,0) Heads Tails) |
| !food | !cmd add !food Tonight's dinner: $(random.pick 'pizza' 'pasta' 'tacos' 'sushi') |
| !lastseen | !cmd add !lastseen $(user) was last seen $(user.lastseen) ago |
| !weather | !cmd add !weather $(sender), weather in: $(weather ${1:}) |
| !time | !cmd add !time It's $(time America/New_York) for the streamer |
Commands marked “mods” should be locked down after you add them, for example:
!cmd options !so -level 500
!cmd options !death -level 500
!cmd options !resetdeaths -level 500
For shoutouts with Twitch’s follow button, see the Twitch shoutout command guide.
Default StreamElements commands
Access is the default level; you can change it per command under Chatbot → Chat Commands → Default commands.
Stream info and utility
| Command | Access | What it does |
|---|---|---|
!uptime | Everyone | How long the stream has been live (alias !downtime). |
!followage | Everyone | How long a user has followed: !followage [user] [channel]. Twitch only. |
!accountage | Everyone | When a Twitch account was created. |
!chatstats | Everyone | Link to your chat statistics page. |
!tip | Everyone | Link to your tipping page. |
!commands | Everyone | Link to your public command list. |
!command | Moderator | Add, remove, edit or alias custom commands (alias !cmd). |
!bot | Super Moderator | Mute, unmute or remove the bot (!bot part). |
!module | Super Moderator | Enable or disable chatbot modules. |
Stream management and moderation
| Command | Access | What it does |
|---|---|---|
!settitle | Super Moderator | Change the Twitch stream title. |
!setgame | Super Moderator | Change the Twitch category. |
!timer | Moderator | Enable or disable chat timers. |
!editcounter | Moderator | Set, increase or decrease counters. |
!alerts | Moderator | Mute, skip or pause overlay alerts. |
!hypecup | Super Moderator | Clear the HypeCup overlay list. |
!permit | Moderator | Let a user post links temporarily. |
!nuke | Super Moderator | Timeout, ban or delete recent messages matching text or regex. |
!nukeusername | Super Moderator | Timeout or ban users whose names match text or regex. |
!filesay | Super Moderator | Send multiple lines from a URL to chat. |
!level | Super Moderator | View or override user permission levels. |
!votekick | Moderator | Start a vote to temporarily kick a user. |
!vanish | Everyone | Time yourself out for 1 second to clear your messages. |
Points, games and giveaways
| Command | Access | What it does |
|---|---|---|
!points | Everyone | Your (or another user’s) points and rank. |
!watchtime | Everyone | Accumulated watch time. |
!top / !leaderboard | Everyone | Top users by points or watch time / leaderboard link. |
!givepoints | Everyone | Transfer your points to another user. |
!addpoints / !setpoints | Super Moderator | Add to or set a user’s points. |
!duel, !accept, !deny, !cancelduel | Everyone | Points duels. |
!roulette / !slots | Everyone | Gamble points. |
!bet / !contest | Everyone | Bet on / check the active contest. |
!bingo | Moderator | Emote bingo game. |
!raffle / !sraffle / !cancelraffle | Moderator | Start a multi-winner or single-winner raffle, or cancel it. |
!join | Everyone | Enter the active raffle. |
!giveaway / !ticket | Everyone | Giveaway status / buy tickets. |
!items / !redeem | Everyone | Loyalty store link / redeem an item. |
!openstore, !closestore, !enablesfx, !disablesfx | Moderator | Turn store items or sound effects on and off. |
Song requests, queue and fun
| Command | Access | What it does |
|---|---|---|
!songrequest | Everyone | Request a YouTube song or video. |
!song / !next | Everyone | Current / next song. |
!when / !wrongsong | Everyone | Your request’s queue position / remove your last request. |
!voteskip / !volume | Everyone | Vote to skip / check or set the player volume. |
!skip, !pause, !play, !removesong, !srclear, !songqueue | Moderator | Control and clear the request queue. |
!queue | Everyone | Viewer queues, e.g. for playing with the streamer. |
!8ball | Everyone | Magic 8-ball answer. |
!quote | Everyone | Random saved quote, or manage quotes. |
!emotes / !emotecount | Everyone | List channel emotes / how often an emote is used. |
!kappagen | Moderator | Emote explosion on the Kappagen overlay. |
Using Nightbot instead? Its syntax is different; see the Nightbot commands guide. To show chat on stream without bot spam, our free Twitch chat overlay can hide bots and ! commands.
Frequently asked questions
Is it !cmd or !command in StreamElements?
Both. !cmd is an alias of !command, so !cmd add !socials ... and !command add !socials ... do the same thing.
Why does !command add not work for my moderator?
The !command default command needs Moderator access by default. Check that it hasn’t been disabled or had its level raised under Default Commands in the StreamElements dashboard.
What is the difference between $(user) and $(sender)?
$(sender) is always the person who typed the command. $(user) targets the name typed after the command when there is one, and falls back to the sender otherwise. Both have sub-fields such as .points and .lastseen.
Do StreamElements variables work on YouTube and Kick?
Most do. StreamElements notes that $(user) and its sub-variables, $(game) and $(redeem) are not available on YouTube. Some default commands, like !followage, are Twitch-only.
How do I reset a command counter?
Run !command options !name -count 0 to reset a command’s own counter, or put $(count name 0) in a mod-only command to reset a named counter. Named counters are also editable in the dashboard under Chatbot → Counters.
Sources: StreamElements docs: Custom commands · StreamElements docs: !command · StreamElements docs: Default commands · StreamElements docs: Getting started · StreamElements docs: Variables cheat sheet · StreamElements docs: Death counter guide