# Keep a quote book

Save memorable lines from your streams, let chat pull them up with !quote, and let your mods add new ones.

Updated 24 September 2026

## What you get

Your channel has a numbered quote book. Viewers type `!quote` for a random one or `!quote 12` for a particular one, and your moderators add, fix and remove quotes from chat. You can also look after the whole book from your dashboard.

Every quote keeps its number for good. Deleting quote #3 leaves a gap; the next one added is still the next new number, so `!quote 12` always means the same line.

## Before you start

- The **Quotes** flow, from the **Starter** pack. If you installed Starter during setup you already have it, paused. Otherwise open **Flows → Explore packs** and install **Quotes** on its own or with the pack — [Use templates and flow packs](https://bloopbot.com/docs/templates-and-packs) shows how.
- The bot as a moderator in your chat, as for any command — the Setup guide’s **Give the bot mod** step.

## 1. Add quotes from the dashboard

1. Open **Quotes** in the sidebar, under Content.
2. Choose **+ Add Quote**, type the line in **Quote Text** and choose **Save Quote**.
3. The quote joins the list with its number, who added it and when. Use **Search quotes...** to find one, the pencil to edit its text, and the bin to delete it.

![The Quotes card on the Quotes page, reading 4 quotes total, with a + Add Quote button, a Search quotes box and four numbered quotes — #1 I am not lost, the map is wrong; #2 That boss had way more health than it needed; #3 Chat, we do not speak of the lava level; #4 One more run, then bed — each with who added it, the date, and edit and delete buttons.](https://bloopbot.com/docs/screenshots/quotes-page.jpg)

_The quote book on the Quotes page: four numbered quotes with who added each one and when._

Editing keeps the quote’s number. Deleting asks you to confirm and cannot be undone.

## 2. Turn on the !quote command

1. Open **Flows** and find **Quotes**. It has one trigger, the chat command `!quote`, and one **Quotes** step set to **Handle the !quote command**.
2. Check **Who can read** on that step. **Everyone** lets any viewer pull up quotes; pick a higher level to keep reading to subscribers, VIPs or moderators.
3. Press **Save**, then switch the flow on.

![The Do this step of the Quotes flow: a Quotes action with Do set to Handle the !quote command, explained as covering !quote, !quote with a number and !quote add, edit and delete; Who can read set to Everyone, noting adding, editing and deleting always need a moderator; and an empty Number or text field with an Insert… menu.](https://bloopbot.com/docs/screenshots/quotes-step.jpg)

_The Quotes step in the Quotes flow: Do is Handle the !quote command and Who can read is Everyone._

That one step answers every form of the command:

| In chat | What happens | Who can |
| --- | --- | --- |
| `!quote` | Posts a random quote, such as _#2: That boss had way more health than it needed._ | Whoever **Who can read** allows |
| `!quote 2` | Posts quote #2 | Whoever **Who can read** allows |
| `!quote add I am not lost, the map is wrong.` | Saves it and replies _Added quote #5._ | Moderators and you |
| `!quote edit 5 I am not lost. The map is wrong.` | Replaces the text and replies _Updated quote #5._ | Moderators and you |
| `!quote delete 5` | Removes it and replies _Deleted quote #5._ `!quote remove 5` works too. | Moderators and you |

Adding, editing and deleting always need a moderator, whatever **Who can read** says. A quote added from chat is credited to the person who typed it.

> **The Configuration card does not switch the command**
>
> The **Configuration** card at the top of the Quotes page has its own switch and **Read Permission**. Neither changes what `!quote` does in chat: to stop the command, pause the **Quotes** flow, and to change who can read, use the step’s **Who can read**.

## Other ways to use quotes

The **Quotes** step has three more choices in **Do**, for flows that are not the `!quote` command:

- **Say a random quote** — for example, on a timer that posts one every so often. [Post a recurring chat message](https://bloopbot.com/docs/timers) shows the timer.
- **Say one quote by number** — set **Number or text** to the number, or to a token.
- **Add a quote** — set **Number or text** to what should be saved, such as `$(query)` from a channel points reward that asks for text, so viewers can suggest quotes. [Respond when a viewer redeems a reward](https://bloopbot.com/docs/reward-redemptions) covers rewards.

To have an AI read new quotes before they are saved, install **Check a quote before saving it** — [Screen text before it is shown or saved](https://bloopbot.com/docs/text-screening#quotes) walks through it.

## Check it works

1. In the Quotes flow, press **Test fire**. The dry run plays a made-up `!quote sample arg`, so the Run log shows the bot _would_ reply _Error: Quote not found._ — expected, because `sample` is not a quote number. It proves the flow is wired; it posts nothing, and a test never adds, edits or deletes a real quote.
2. With the flow on, type `!quote` in your Twitch chat. The bot posts a real quote from your book.
3. As a moderator, try `!quote add` with a test line, then `!quote delete` with the number it gives back.

## Troubleshooting

- Nothing happens on `!quote`: the flow is paused, the viewer is below **Who can read**, or another flow also answers `!quote`. Check **Flows → Needs attention**.
- _Error: No quotes found._: the book is empty. Add one from the Quotes page or with `!quote add`.
- _Error: Quote not found._: there is no quote with that number, often because it was deleted. Numbers are never reused.
- A line starting _Usage: !quote_: the command was missing its number or text.
- A viewer’s `!quote add` is ignored: only moderators and you can add, edit or delete.
