Commands.
Commands are the heart of the bot. A viewer types a trigger, the bot replies with your text, with live data filled in. Custom commands, keyword triggers, permissions, cooldowns and aliases are all here.
Custom commands
A command is a trigger plus a response. Type the trigger in chat (with your prefix) and the bot posts the response. The response can mix your own words with variables that fill in live.
Trigger: !discord
Response: Join the $(channel) Discord at discord.gg/yourcodeVariables make a command dynamic. A !uptime command whose response is $(channel) has been live for $(uptime) posts the real elapsed time every time.
Build a command with AI
Do not want to wire up variables by hand? On the Commands page hit Build a command for me (or Build a keyword for me on the Keywords tab), describe what you want in plain language, and the AI writes a ready-to-use command for you: the trigger, a response with the right variables, a sensible permission level and cooldown. You get a preview to review and tweak before it saves.
a !hype command that hypes up the streamer
a command that suggests a random retro game to play
a keyword that posts the Discord link when someone says "discord"The builder is honest about what it can do. If a request needs data the bot does not have, it tells you instead of quietly building a command that does nothing, and when a request needs live data it will wire up an API command for you where one fits.
This one builds chat commands. The AI Magic Builder under Build your own is a separate tool that generates overlay widgets.
Add and remove commands from chat
You and your mods can manage commands without leaving chat. These are built-in commands, available to you and your moderators by default.
| Command | What it does |
|---|---|
!addcommand <description> | Describe a command in plain language and the bot builds it with the same AI as the dashboard button. Example: !addcommand find a cat fact api and give me a random cat fact. |
!delcommand / !remcommand <name> | Remove a command by name (the two are aliases). The bot works out which command you mean and deletes it, if you are allowed to. |
Who can remove what
Deletion from chat is permission-gated so a mod cannot wipe commands above their station:
- You (the broadcaster) and Lead Moderators can remove any command, including ones built from the dashboard.
- Anyone else can remove a command only if they created it themselves, or if its creator ranked strictly below them. So a moderator can delete a command a subscriber made, but not one another moderator made.
- A command with no recorded creator (older commands and seeded defaults) can be removed only by you or a Lead Moderator.
A Lead Moderator is Twitch's elevated moderator role. OverlayThing recognises it everywhere a mod check matters, so your most-trusted mods get the wider delete reach automatically.
Default commands
You start with a set of commands already made for you. They are normal commands you can edit, disable or delete.
| Command | Replies with | Who |
|---|---|---|
!commands | A link to your public command list. | Everyone |
!uptime | How long you have been live. | Everyone |
!followage | How long the viewer (or an @user) has followed. | Everyone |
!accountage | How old the viewer (or an @user) Twitch account is. | Everyone |
!watchtime | Tracked watch time for the viewer (or an @user). | Everyone |
!title | Your current stream title. | Everyone |
!game | The category you are streaming. | Everyone |
!so | A shout-out to another streamer, plus a native Twitch shoutout. | Mods |
!socials | A pointer to your social links. | Everyone |
!discord | Your Discord invite pointer. | Everyone |
!lurk | A friendly lurk message. | Everyone |
Deleted one you wanted back? The Commands page has a Restore defaults button that puts back any missing default without touching commands you have customised.
Keywords and match types
Most commands match the first word of a message (a prefix command). A keyword command instead watches the whole message and fires when it matches a pattern, no prefix needed. Each keyword has a match type:
| Match type | Fires when the message… | Example |
|---|---|---|
| Exact | is exactly the phrase, nothing more. | Phrase hi bot matches only "hi bot". |
| Contains | has the phrase anywhere in it. | Phrase discord matches "what is your discord?" |
| Starts | begins with the phrase. | Phrase gg matches "gg everyone". |
| Regex | matches a regular-expression pattern. | Pattern h[ae]llo matches "hello" or "hallo". |
Regex, plainly
A regular expression is a mini pattern language for "does this text look like X". You do not need it for most keywords, contains and starts cover the common cases. When you do, a few pieces go a long way:
| Piece | Means | Example |
|---|---|---|
| | either / or | lol|lmao|haha matches any of the three. |
? | the thing before it is optional | colou?r matches "color" and "colour". |
[ae] | any one character in the brackets | gr[ae]y matches "gray" and "grey". |
\b | a word boundary (so you match whole words) | \bgg\b matches "gg" but not "egg". |
All keyword matching ignores upper/lower case, and a long message is capped before a regex runs so a heavy pattern cannot bog the bot down.
What wins when several could match
One message fires at most one command. A prefix command (or one of its aliases) always beats a keyword. Only when no prefix command matches does the bot check keywords, in order, and the first match wins.
Permissions (user levels)
Each command has a who can use it level. A viewer must be at that level or higher to run it.
| Level | Who can run it |
|---|---|
| Everyone | Anyone in chat. |
| Subscriber | Subscribers, VIPs, mods and you. |
| VIP | VIPs, mods and you. |
| Moderator | Your mods and you. |
| Broadcaster | Only you. |
If a viewer below the level tries a command, the bot simply stays quiet.
Cooldowns
Cooldowns stop a command being spammed. There are two, and both can be set on the same command:
| Cooldown | What it limits |
|---|---|
| Global | How often the command can run for the whole channel, regardless of who runs it. |
| Per user | How often a single viewer can run it. Others are unaffected. |
By default mods and you bypass cooldowns entirely (you can turn that off in Bot settings). When someone hits a cooldown the bot either stays silent or posts a short "wait Ns" reply, your choice in Bot settings.
Aliases
Give a command extra trigger words that do the same thing. A !commands command with aliases cmds and help answers all three. Aliases share the command response, permission and cooldowns, and they cannot collide with another command trigger.
Public list visibility
Each command has a show in public list toggle. Public commands appear on your shareable command page at overlaything.com/c/yourname (built-in module commands from Queue, Quotes, Counters, Music and a live giveaway keyword show there too). Turn it off for internal or mod-only commands you would rather not advertise.
You can also assign your custom commands to specific categories on the public list, so they group under their own headings on the command page instead of sitting in one long list.
Turn on suggestions in Bot settings and when a viewer mistypes (like !uptme) the bot can reply "Did you mean !uptime?". It is rate-limited per viewer so it never spams.