Skip to main content

Chattler docs

Two things live here: the user guide, which covers everything Chattler does, and the pages below, which are about extending it.

Chattler can be extended in two ways, and both are plain text files you write yourself:

  • Themes are colours. A .theme file says whether it is light or dark and lists a handful of colours. Chattler ships with eight, and every one of them is a file exactly like the one you would write.
  • Plugins are alerts. A .chatt file says what to watch for in chat and what to do about it: raise an alert, play a chime, send a desktop notification, keep a count.

Both are written in Chattscript, a small language built for this and nothing else.

What a plugin can do​

plugin "Shouty people"
description "Says something when chat goes all caps"

on message do
if event.text = upper(event.text) and length(event.text) > 20 then
alert(event.user + " is SHOUTING in " + event.channel)
end
end

Drop that in your plugins folder, hit Reload in Settings, and it runs.

What a plugin cannot do​

This matters, because you will be running other people's scripts next to a chat client that is logged into your Twitch account.

A plugin cannot:

  • time anyone out, ban anyone, delete messages or change chat settings
  • send messages or whispers as you
  • read or use your Twitch login
  • reach the internet, read your files, or touch the rest of the app
  • run forever, or use enough time to make chat stutter

It is not a matter of a plugin being asked politely not to. The language has no syntax for any of it: no network calls, no file access, no way to name anything in the app. The full list of what a script can reach is on the builtins page, and the limits it runs under are on limits and safety.

Plugins raise alerts. Nothing else.

Where to go next​

I want toRead
Learn what Chattler doesUser guide
Install a plugin someone sent meStart here
Write my first pluginPlugins
Make Chattler my coloursThemes
Know every keywordLanguage reference
Know what I can react toEvents
Know every functionBuiltins
See working examplesExamples