---
title: "{7tv} / {bttv} / {ffz}"
description: A random 7TV, BetterTTV or FrankerFaceZ emote from your channel - or from any set you point it at.
---

```text
{7tv}                    one random 7TV emote from your channel
{7tv.list}               every 7TV emote on your channel, space-separated
{7tv.count}              how many there are
{bttv}   {bttv.list}     the same for BetterTTV
{ffz}    {ffz.list}      the same for FrankerFaceZ
```

Your channel's third-party emotes, by name. These are the emotes your
viewers installed through the 7TV, BetterTTV or FrankerFaceZ browser
extension - the bot just types the word, and anyone with the extension
sees the image.

**Platforms:** `{7tv}` works in Twitch and Kick chat. `{bttv}` and
`{ffz}` are Twitch-only products, so they read blank in Kick chat.

## Examples

```text
!hype     →  {repeat:5|{7tv}}
!emotes   →  Our 7TV emotes: {7tv.list}
!howmany  →  We have {7tv.count} 7TV emotes installed.
timer     →  {7tv} Follow for more {7tv} {7tv}
```

## Choosing where the emote comes from

By default you get your own channel's set on the platform the message
came from. The argument picks something else:

| Argument | Reads |
| --- | --- |
| `{7tv}` | Your channel's set |
| `{7tv:global}` | The provider's global set - the emotes everyone has |
| `{7tv:all}` | Global and your channel together |
| `{7tv:01F6MZGCNR000255V0F9C6CJT2}` | That 7TV **emote set**, by its id |
| `{7tv:somestreamer}` | Another channel's set, on the same platform as the message |
| `{7tv:twitch:somestreamer}` | That Twitch channel |
| `{7tv:kick:some-slug}` | That Kick channel |
| `{7tv:kick}` | Your own Kick channel (or `twitch` for your Twitch one) |

All of these work on `{bttv}` and `{ffz}` too, except emote set ids -
only 7TV has them.

### Emote set ids

A 7TV emote set has its own id, visible in the address bar when you open
the set on [7tv.app](https://7tv.app) - the long string at the end of
`7tv.app/emote-sets/…`. Pointing a variable at one lets you pull from a
set you haven't made active on the channel: a seasonal set, a set of
reaction emotes, a set you share with another streamer.

```text
!spooky  →  {7tv:01H4KPT9CG0007CYWY6R4TNQMW}
```

If the id is ambiguous with a channel name, write it as
`{7tv:set:01H4KPT9CG0007CYWY6R4TNQMW}`.

## Unlike `{emote}`, there is nothing to unlock

[`{emote}`](/chat-bot/variables/emotes) reads your **Twitch** emotes, and
Twitch only draws those if the account sending the message owns them - so
the bot has to be subbed to your channel for sub emotes to show.

Third-party emotes have no such rule. They are ordinary words in the
message that the viewer's extension swaps for an image, so the bot can
send any of them. Viewers without the extension just read the word.

## Notes

- `.list` is capped at 400 characters so the message still fits.
- Emote lists refresh every 10 minutes; global sets every hour.
- If a provider is unreachable, or the channel has no emotes with it, the
  variable is blank rather than an error - the rest of the message still
  sends.
- The chat games that spot emote spam ([pyramids and
  combos](/chat-bot/modules)) already recognise third-party emotes, using
  the same lists.
