Main | Messages | Chat | Emoticons | Usericons | Usercolors | Highlight | Ignore | Sounds | Notifications | Log to file | Window | Commands | Other | Advanced | Hotkeys | Completion
This page details some of the settings in the Settings Dialog
Main Menu - Settings). Also try hovering over settings
in the settings dialog itself, sometimes you can get a tooltip with some
additional information. You can open this help in the settings dialog by
clicking on the "Help" link on the bottom left.
Change font and font size by clicking on
Input font is restricted to two fonts by default, because other fonts cause issues due to a bug in Java. The number behind the font is the font size. You can manually change this setting via Setting Commands (as with most settings) if you really need another font, but pay attention to the note about the adverse effects it may have.
You can select what will happen when you start Chatty:
This allows you to define how timeouts or bans are displayed in Chatty.
Tip: Click on a username in chat to open the User Info Dialog, which also shows the timeouts/bans and the original messages.
Please Note: The timeout duration/reason is in Beta at Twitch, so stuff may or may not change at some point and break the display in Chatty. Telling the difference between a timeout and permanent ban also depends on this, so if this info isn't available users who were just timed out may be shown as banned.
[12:30] Spammer: Deleted spam message Long copy pas..
[23:12] Spammer: spam message (10m)
[23:12] Spammer: spam message (banned)(permanent ban)
[23:12] Spammer: spam message (10m)*
[23:12] Spammer: spam message (banned) [rude tbh]
[23:12] Spammer: spam message (10m) [emote spam]
<name> has been timed out
<name> has been banned(permanent ban)
<name> has been timed out (3).
<name> has been timed out (60s)
<name> has been banned [rude tbh]
<name> has been timed out (600s) [emote spam]
/set timestamp <format>. The format can be anything specified by the Java SimpleDateFormat class.
Advanced - Correct Userlistis enabled).
Extra - Moderation Log.
This has been moved to it's own settings page.
<x>seconds of inactivity: If you scrolled up in chat but haven't moved scrollposition in the given number of seconds, it will scroll down if new messages come in. This prevents new messages from being hidden indefinitely if you accidently stayed scrolled up.
The Pause Chat feature stops Chatty from scrolling down when you move the mouse over chat. This can be useful if you want to click specific stuff in a fast moving chat, for example if you are moderating or just want to click on an emote to see what it is.
Please note: This will not work properly until the chat window is filled with text, because only then will Chatty actively scroll down. Also, this only stops Chatty from actively scrolling down, so if e.g. a big message is being timed out and thus shortened, stuff may still move around accordingly (which in that case couldn't really be prevented anyway).
Chat is paused as long as you move the mouse over chat or if you hold Ctrl (and initiated pausing by moving the mouse). A little popup in the top-right will indicate that the chat is paused.
Holding Ctrl basicially acts as if you moved the mouse continuously.
Noneto turn off Emoji images altogether.
Emotes added to this list will not be turned into an image, but instead are just shown as their emote code.
The code added to the list has to be the
exact code used internally to find the emote in the messages. Usually this is simply
the emote code as you would type it in chat, but some emotes have a special syntax
that you might not even know (e.g.
\:-?\) as actual code).
It is recommended to use the emote context menu (right-click on an emote in chat) to
ignore emotes, because then the correct code will automatically be added to
botNamessetting, the BTTV API and the FFZ API.
Add entries to the table to show additional icons (
or replace the default icons (all other Types).
The order of the entries can matter, they are looked at from the top:
Addonicons that match are shown, unless you use the
$stoprestriction (see section Restriction below).
Addonwill add an additional badge. All Addon-badges that matche the Restrictions are shown at once.
Turboallows you to define a custom icon for all Turbo badges shown in chat. Accordingly, if you selected
Bitsit would target all variations of the Bits badge.
Other Twitchallows you to directly select a default icon via Twitch's own Badge ID/Version, which allows you to target badges that are not a supported Type.
Other TwitchType selected. This specifies the Badge ID/Version that Twitch uses to identify Badges, which allows you to target any Twitch Badge you want, including a specific variation.
bits/100. If you don't specify a Version, so just
bits, then it matches all versions, in this case it would match all Bits Badges.
serenity) or an addressbook category (e.g.
$cat:vip, which would refer to the category
vip). If you keep this empty, then no restriction is applied.
Addoncarries an implicit restriction, since e.g. the default moderator icons are only displayed if the user is a moderator.
$stopmeans if this icon matches (and is thus used), it stops searching for further
Addonicons. So it's not really a restriction for this icon, but rather a restriction that affects the following icons and can be used to limit the number of
Addonicon before the regular icons. The
$stoprestriction only applies to one group of
Addonicons separately (before or after the regular icons).
$badge:<ID/Version>matches a Twitch Badge a user has. For example
$badge:bits/100will only target users that currently have the 100-Bits Badge
$cat:streamer $first- Matches users in the Addressbook category
streamerand puts the badge in front of the default ones.
lotsofs- Matches a user by the name
$cat:vip $badge:bits- Matches users in the Addresbook category
vip, but only if they also have a Bits-Badge displayed.
!#channel) to have it displayed in all channels except the one you specified.
.pngand is recommended to be about 18x18 pixels (because that is the default size). If you specify no image, then the matching default icon is removed.
<working_directory>/img/(Chatty directories help). You can click on
Image Folderto show information about it and rescan to update the list.
$defaultwill use the default image file, that would be shown without defining Custom Usericons. This can be useful if you e.g. want to replace all Badge Types, except for one, so you can define that one to use the default.
httpis interpreted as URL.
Tip: Jump to entries in the table by clicking into a column and start to type. Backspace or wait to get out of the search mode.
This allows you to specify your own usercolors for either certain types of users (mod, subscriber etc.) or specific usernames. There are special items that you can use to specify that (to specify a username, just enter it without anything else):
$turbo- Turbo Users
$staff- Staff members
$all- All users, this can be used to specify a default color (should be put at the very end of the list)
$cat:<category>- A category from the Addressbook
#<color code>- A Html color code, e.g.
#0000FFfor blue, which can be used to replace colors
$color:<color code or name>- A Html color code or name (names as hardcoded into Chatty, may be different from other programs), e.g.
$color:Bluefor blue, which can be used to replace colors
The order of the
entries in the table matters, because it is checked from the top. If you
were to put the
$all item at the very top, any items below
wouldn't do anything, because the first item would already match all users.
This e.g. allows you to specify what color a user should have when he is
both a subscriber and a moderator (by either putting
If an item is red and has "(error)" appended (e.g. "$color.Blue (error)"), this means the item is invalid. In the example this is because a point has been used instead of a colon, so "$color:Blue" would be correct. This can also happen if it doesn't recognize the given color or the item is just in an invalid format.
Users can customize the capitalization of their name, or set a localized name for some locales, like Japanese.
Chat messages and the Userlist can be configured separately with the following options:
If you have a Custom Name set for a user, then only that Custom Name will be shown.
Other related settings:
user:prefix with your own name.
Add items to the list to make a message highlighted if any one of them match the message. The following two types of prefixes can be used to change highlighting behaviour per item.
By default, matching is done case-insensitive and when the word or phrase appears anywhere in the message. However, you can add the following prefixes in front of the text to change this matching behaviour. You can only use one of these prefixes per item, because all text following the prefix is interpreted as text to match.
cs:makes it case-sensitive, so
w:matches at word boundaries, e.g.
annah. (Is actually just a shortcut for a special regex, so special regex characters will work.)
wcs:is the same as
w:, but case-sensitive.
start:to match at the start, so
start:!betwill match messages starting with
re:to use a regular expression, e.g.
re:(?i).*\bGTA ?[V5]\b.*to match GTA5, GTA 5, GTA V, gta5, .. (as a word) anywhere in the message. Note that the regex always tries to match the entire message, so you have to add the appropriate wildcards to match parts anywhere in the message.
The following prefixes mostly influence which messages are matched, however they don't change the matching of the text itself, but instead provide other information for the highlight system. They can be placed in front of the Text Matching Prefixes (or the text if you don't have any other prefixes) and you can even use more than one per item. These prefixes have to be seperated from eachother and the text by a space.
user:to specifiy one exact username (case-insensitive) which should highlight only if this user send the message, doesn't search in the message itself.
cat:to specify a category the user who send the message should be in (as defined in the Addressbook).
!cat:to specify a category the user who send the message can NOT be in.
chan:to specify one or more channels the message has to be send in to match (several channels are specified as comma-seperated list, without spaces).
!chan:to specify one or more channels the message must NOT be send in to match.
chanCat:to specify one category the channel the message was send in has to be in (as defined in the Addressbook with the name of the channel, including leading #).
!chanCat:to specify one category the channel the message was send in can NOT be in.
status:to specify that the user has to have one of the given status codes (case-sensitive):
rBot as in Robot (depending on what the FFZ/BTTV APIs provides (if enabled) and values in the botNames setting)
MUser with any kind of moderator/special powers (so Broadcaster/Moderator/Global Moderator/Admin/Staff combined)
status:stmatches all subscriber and turbo users.
!status:to specify that the user must NOT have any of the given status codes (see
status:for codes). For example:
!status:stMmatches all 'normal' users that have no badge by default (NOT a Subscriber, Turbo User or any kind of Moderator).
color:to specify a color other than the default one for displaying this highlight. If you have items with a custom color defined, which match something that might also be matched by other items (with another color or custom color) then the order of items is important so it displays the desired color. Items on the top are matched first, so move items up that should take precedence. For example
color:blue test2. If
testis on the top it will never get to the blue one, because
testwill always match when
test2would match as well.
config:to specify one or more options (seperated by comma) that changes the behaviour):
silent- Disable sounds for this item
!notify- Disable notifications for this item
info- This item applies to info messages instead of regular user messages (works only for Ignoring messages at the moment)
Word1 word2anywhere in the message
word2anywhere in the message
Helloanywhere in the message, if the message was sent by the user named
Hello user:joshimuzanywhere in the message
Hello, does NOT matter who send the message
abc re:\w+anywhere in the message
abc test, but also NOT
abc testanywhere in the message
Hello S!and makes the message display in yellow color
Hello, but only if in the channel
status:s chanCat:vip start:!test
!testsend by subscribers of the channel, but only if the channel is in the Addressbook category
/ab add #joshimuz vip, notice the leading
Allows you to ignore chat messages that match the specified text or -
using prefixes - that match other properties like ignoring messages of a
specific user. Ignored messages get added to a special dialog that can
be opened via
View - Ignored.
The matching of messages works the same as the Highlights system, please see that help for information on that. For quick reference here just a few examples:
namein all channels
config:info subscribed to
x has subscribed to yinfo messages that you get when someone subscribes in the channel that is being hosted
ignorein all channels, except
!bet, but only in
/ab add #joshimuz subonly, notice the leading
Ignored Users list allows you to ignore
users in chat or prevent them from whispering you, which is possible via
the main ignore list as well, but was added as a separate function to be
more convenient. Aside from the settings, you can also ignore/unignore
users via the User Context Menu.
Ignored users are independant of the main ignore list, so they also apply if ignore is disabled.
user:prefix on the main Ignore list.
You can enable or disable all sounds here. Sounds are searched in the
displayed folder, which is the current working directory. Any valid sound
files in the folder should be selectable as a sound to be played. If you
added or removed files, you may have to use
Rescan folder to
make the files show up in the list. You can open the folder in your standard
file browser from here to add files to it more quickly.
The Output Device lets you choose the device on your computer the sounds gets output to. This is kind of experimental and may not work properly.
You can specify requirements, soundfile, volume and delay for different types of events:
You can set a delay (seconds) so that the same sound won't be played twice during the set number of seconds. So if e.g. 3 highlighted messages come in within 10 seconds and the delay is set to 15 seconds, only one sound will be played.
Each sound has different options for when the sound should be played. See the Notification Settings for help on the options.
You can show notifications for two kinds of things:
For both these you can select separately if and when they are shown:
In addition, the option Don't notify about "Stream offline" allows you to never show when a stream changes status to offline, so you will only be notified about streams going live or changing title/game.
Select here whether to use the Chatty Notifications or the default System Tray Notifications. This settings DOES NOT enable or disable notifications altogether, just switch between the types.
If you have Chatty Notifications selected, you can change some more options:
automeans it's on the same screen as the Chatty window)
Enable this to make Chatty get a list of your followed streams regulary so it can display notifications if their status changes. This simpy allows Chatty to know about your followed streams, so notifications aren't the only advantage. It also allows it to record the viewer count and status history of followed live streams as long as Chatty is running.
If you enable logging, chat messages (and more if enabled) will be written into a seperate textfile for each channel.
You can specify which channels should be logged:
Normal chat messages are always logged, however you can log additional information:
BAN: name1, name2 (30s) [reason], name3 (600s)
MOD: name1, name2
UNMOD: name3, name4
JOIN: name1, name2
PART: name3, name4
Viewerstats (21:03-21:06): avg:28.612 min:28.432 max:28.887 [3/28.519-87+455_]
MOD_ACTION: tduva (host coollertmb)
Main - Exitor the tray icon context menu.
Custom commands allow you to specify aliases for anything you could also enter directly into the inputbox (like chat messages or regular commands), with the exception of other custom commands, which is a limitation implemented to prevent infinite loops. Custom commands you add should be in the following format:
/<commandName> <what the command should do>
Everything until the first space is the name of the comand, and everything after the first space is the text of the command. For example:
/hello Hello World!
If you added that to the custom commands and enter
in the inputbox, then it would send
Hello World!, just as
if you would have written it yourself and pressed Enter.
You can also specify parameters in the command text, which will be replaced when you execute the custom command. For example:
/permit !permit $$1
When you enter
/permit name, then it will replace
with the first word after the command, which in this case would be
name, making the actually send text
This is the syntax for specifying parameters (word in this context means anything seperated by a space):
$1, $2, $3
$$2, $$3-is also possible
$) by prepending a backslash
\, which means this won't be interpreted as a parameter and not be replaced
\, you can escape the backslash itself, for example
\\$1-will be replaced (leaving one backslash in front of the replaced parameter)
In a context other than entering the command in the inputbox, there are some predefined parameters. For example if you add a command as a context menu entry (see next section), then clicking that entry will execute the command while automatically adding an appropriate parameter.
So you can for example add just
/Permit to the menu, but
the custom command
/permit !permit $$1 will actually be
!permit <name of the user>.
|User Context Menu||
|Channel Context menu||
In addition, there is an implicit channel context, which means channel-aware
/ban are executed in the appropriate channel.
You can add custom commands and regular commands to the
User Context Menu (when you right-click
on a user in chat), the
Channel Context Menu (when you right-click anywhere on the chat
that is not otherwise linked) and customize
User Dialog Buttons (Custom Commands
and Timeout Buttons).
Commands can be added in the following format:
Which means the command with the name
slap will be added
permit after that. You can use spaces,
linebreaks and/or commas as seperators between commands.
This is the syntax for specifying commands in the Context Menus/User Dialog:
/, then the name (without parameters) and space, linebreak or comma to seperate to the next command.
//will put the command in the special submenu
More..(for Context Menus) or in a second line of buttons (for the User Dialog).
|(vertical bar) will add a seperator before the menu item for the next command. The
|doesn't have to be directly in front of the command, it simply applies to the following command.
/Set_coloris displayed as
In addition, you can define for the User Dialog Buttons:
5, 2m, 10m, 24h
120s, 120is displayed as
/Ban[B], /Unban[U], 2s[P]
+) can be used instead (which will be replaced with a space automatically).
|) after the shortcut will use the text after it up to the closing bracket as label for the shortcut on the button (no spaces are allowed). If you don't specify any text, then no label is used for that shortcut.
/unhostcommand to your channel if you started your stream session in the last 15 minutes and the stream status changes (usually from offline -> live).
/add autoUnhostStreams <streamName>, in order to tell Chatty that you are authorized/want to use the automatic
/unhostfeature in that channel).
You can let Chatty write information (title, game, viewercount) of a
certain stream to a file. The file will be written to the subfolder
exported of the settings directory
/dir to find out where that is). Stream information is
only written if Chatty gets that data, so for it to work properly you need
to currently have the channel of that stream open in Chatty. (When you change
the setting, data will be requested once for testing, but you have to be in
the channel for it to be updated regulary.)
To save stream information to a file, you have to define it in the setting. Each line represents one stream/file and the content to write into the file. The format for each line is:
<streamname> <filename> [online/offline] <content>
The optional parameter
online/offline defines whether to
write the given content to the file when the stream is online or offline. So
you could for example define one line for online, which writes the viewercount
and another for offline which writes "Offline" or maybe no content at all, which clears the file.
If you only define one for online, then
the file is not written if the stream is offline, so the previous info will
stay in there. If you ommit this parameter, then online is assumed.
The following codes in the content will be replaced with the appropriate data:
%title- The title of the stream
%game- The game of the stream
%viewers- The current viewercount
%followers- The current number of followers, only updates correctly when the Followers Dialog for this channel is open (Main Menu - Extra - Followers)
%subscribers- The current number of subscribers, only updates correctly when the Subscribers Dialog for this channel is open (Main Menu - Extra - Subscribers)
%subscribersf- The same as above, but formatted numbers (e.g.
Example which will write two files (if joined to #joshimuz):
joshimuz title.txt %title (%viewers Viewers)
joshimuz title.txt offline Stream offline
joshimuz game.txt %game
joshimuz game.txt offline
If the stream is online, it writes the title and viewercount to
and the game to
If the stream is offline it writes "Stream offline" to
title.txt and empties
These settings should only be changed if you know what you're doing. You can however reset any setting to the default by either deleting the settings file or using setting commands.
The server/port values are used when connecting, unless the commandline
-port are used,
then the value that is given there is used instead (without it being shown
here). You should know if you set a server or port with a commandline
parameter, but you can also check that by using
Manage the actual login data under
Main Menu - Login...
-tokenparameter to override existing token
-tokenparameter sets the login token used in Chatty. If a token is already saved in Chatty, then the
-tokenparameter will have no effect, unless this setting is enabled.
-tokenparameter, then it will be overriden anyway.
-tokenparameter is in use, it will be shown as such in the
Main Menu - Login..dialog.
The Twitch Client Version setting has been removed since Twitch Chat was switched over to IRCv3 tags and commands (receiving of joins/parts is now controlled by the Correct Userlist setting).
You can add hotkeys for certain actions. In general, there are the following types of hotkeys:
With the Enable global hotkeys setting you
can enable/disable the currently defined global hotkeys if your
Chatty version supports global hotkeys. It does not do
anything on it's own, it just toggles global hotkeys you defined
on and off, in case you only need them sometimes and they
interfer with other programs you use. You can also toggle that
setting in the main menu under
Extra - Options or
use setting commands to change the
If a dialog pops up that tells you that global hotkeys have not been properly initialized, check out the Troubleshooting page.
When adding or changing a hotkey you have the following options:
Custom Command, you have to enter the command to perform in the field below (just the name of the command, see Commands).
50will execute the action only once per 5 seconds, even if you keep the hotkey pressed. This can be useful for actions you normally would only want to execute once (e.g. running a commercial, sending a message to chat) and that you don't want to spam by accident.
TAB Completion allows you to write the beginning characters of a nickname in chat and then press TAB to complete it. To learn how to use TAB Completion check out the general help.
testand has the Localized Name
名前, then entering
tesand TAB will show in the results both
名前 (test), so you can select either name by cycling through the results via TAB as usual.
Custom Completion allows you to add user-specified keywords, that if
prepended with a dot (
.) can be completed to their defined
value using Shift-TAB.
chatty as Key and
http://chatty.github.io as Value and then in the
.chatty (notice the dot in front) and press
Shift-TAB to complete it to the URL.
Custom Completion items can only have one completion, so you can't have
.chatty complete to several different values.
Besides the Settings Dialog, you can also use the
command to modify custom completion items:
/customCompletion add <item> <value>- Add an item
/customCompletion set <item> <value>- Change an item if it already exists (or otherwise add it)
/customCompletion remove <item>- Remove an item
Remember that you can also use TAB Completion for commands. Kappab