To manage chat commands, click the "New command" at the top of the page or the "Edit" command of any of the existing commands, a dialog will appear with info to fill out about it.
: The identifier used to call the command, i.e. A command called "!lurk" will trigger when someone in chat writes "!lurk" as the start of their message. (ok: "!lurk goodbye", not ok: "I'm going to !lurk now")
Description
: Description of the command, has no functional effect and only shows up in the user interface and API. The search box at the top also filters on the description text.
Response
: Message to write to chat, it uses the [Go templating system](https://pkg.go.dev/text/template) with functions described below.
Access level
: Minimum permissions required to use a command. This lets you restrict some commands to moderators or other subset of chat users.
### Chat response functions
These functions operate on Twitch users and messages.
The example message for the examples will be:
> \<AshKeelVT\> !command this is a test
| Function | Description | Usage | Example output |
| `user` | Extract the user name from a message | `{{ user . }}` | AshKeelVT |
| `param` | Extract specific words from a message | `{{ param 4 . }}` | test |
| `randomInt` | Roll a random number within an interval \[min,max\) | `{{ randomInt 1 6 }}` | 3 |
| `game` | Get the last played game for a user | `{{ user . \| game }}` | Sonic Robo Blast 2 |
| `count` | Increase counter by one and write it | `{{ count "test" }}` | 2 |
In addition to these chat specific functions, the entire sprig function library is available (with string manipulation functions and other utilities), check its [function documentation](http://masterminds.github.io/sprig/) for more info.
## Chat timers
Chat timers are messages that are written on repeating intervals as long as some chat activity conditions are met (so the bot doesn't keep screaming into the void!)
The timer page looks mostly like the chat commands page, with timers being either enabled or disabled, sorted alphabetically by name and with a search box for easy filtering.
To manage timers, click the "New timer" at the top of the page or the "Edit" command of any of the existing timers, a dialog will appear with info to fill out about it.
: A unique identifier, used only within the user interface and API
Minimum interval
: How long to wait before the timer attempts to write the message again. If the chat activity condition has not been met yet, the timer will fire as soon as it is and then start waiting again.
Minimum chat activity
: Adds a chat activity condition to timers so that they will only fire when there has been at least a certain amount of messages in chat. You can set it to 0 to disable it, but this might end up spamming your chat if it's being quiet.
Messages
: Messages to write to chat, you can make multiple messages and the timer will pick one at random each time.
Chat alerts are messages that get written to chat when certain events happen. These include viewer actions like following, subscribing or incoming raids from other channels.
The alerts page is structured as a tabbed view with each tab referring to a single event.
Alerts can be enabled and disabled for every event, and you can specify multiple message for each (one at random will be chosen when the event happens).
Alert messages use the [Go templating system](https://pkg.go.dev/text/template) but with a different scheme than chat messages, see below for more info.
When you're done changing your options, make sure to click "Save" to save and apply any change you have made!
### Variables for alerts
The template for alert messages uses an EventSub payload, you can check the full schema [here](https://github.com/nicklaw5/helix/blob/main/eventsub.go) but it may prove difficult to parse, so here's an easier reference: