StreamElements ignoring your bot? How user levels work

Updated October 28, 2026 · 3 min read

You type a StreamElements command and it works. Your bot sends exactly the same line and nothing happens: no reply, no error. The cause is almost always the command’s user level.

StreamElements user levels

Every command in the StreamElements chatbot has a minimum level. Anyone below it gets no response. StreamElements does not report this; the command is simply skipped.

Levels according to the StreamElements documentation
LevelValueHow it is assigned
Everyone100default for everyone
Subscriber250automatically for subscribers
Regular300assigned manually
VIP400automatically for VIPs
Moderator500automatically for Twitch moderators
Super Moderator1000assigned manually
Broadcaster–above every level, may run anything

The last row matters: as the broadcaster you can trigger every command. When you test a command yourself, you therefore never see whether the level works for others.

The super moderator trap

A bot you made a moderator in your channel automatically gets level 500 in StreamElements. It only gets Super Moderator (1000) if you assign it by hand.

If you set a command to Super Moderator, perhaps to protect title changes, you lock out your own bot as well. That is exactly what happened to us: our bot announced every video in chat, and StreamElements was meant to turn that into the stream title. At level 1000 the bot’s line vanished without any message. At level 500 it worked immediately.

Fix: set the command to Moderator (500). Then only your moderators and your bot can use it, and the bot is no longer locked out.

Example: setting the stream title via a bot

To change the Twitch title, a program needs the Twitch permission channel:manage:broadcast for your channel. Many bots do not have it. StreamElements does, because it is connected to your broadcaster account. A proven approach is therefore: your bot writes a command in chat, and StreamElements sets the title from it.

StreamElements provides the $(settitle …) variable for this. A custom command looks like this:

!command add !current Title set: $(settitle ${1:})

${1:} stands for everything from the first word after the command. If your bot writes !current Episode 12: The boss room, exactly “Episode 12: The boss room” becomes the new title.

Then set the level:

!command options current -level 500

Without this restriction any viewer could change your title. StreamElements warns about this explicitly in its own documentation.

Troubleshooting in five steps

  1. Testing it yourself is not a test. As the broadcaster you bypass every level. Have a moderator or the bot trigger the command.
  2. Check the command’s level. In the StreamElements dashboard under Chatbot → Chat Commands, for custom and default commands.
  3. Check the bot’s level. In the chatbot’s user management or with the !level command.
  4. Is the bot really a moderator? In your Twitch dashboard under Community → Roles. Without the mod role it stays at level 100.
  5. Check the cooldown. StreamElements commands have cooldowns. If the bot writes twice in quick succession, the second line is ignored.

Does this apply to other chatbots?

The principle is the same in most chatbots: commands have a minimum level and the channel owner sits above it. Names and values differ. The troubleshooting steps above work in the same way there.

How we connect video announcements and titles in a 24/7 stream is described on the OBS plugin page.

Sources

← All guides