Discord bot
Put characters in a Discord server, and control who pays.
The Reverie bot adds characters to Discord channels. Each character speaks under its own name and avatar, and everything it says is billed to a Reverie account in credits.
The bot works in servers only. It ignores direct messages entirely — there is no DM mode to enable. Use the Telegram bot or the web app for one-to-one chats.
Set it up
Open the integrations dashboard
In the app, go to Labs → Discord & Telegram Bots.
Add the bot to your server
Press Add Bot to Server on the Discord card and pick a server. Leave every requested permission ticked — see the table below for why each one is there.
Link your Discord account
Run /link-account in the server. The bot replies with a single-use link that expires after 10 minutes. Open it, sign in, and the accounts are joined. One Discord account maps to exactly one Reverie account.
Add a character to a channel
In the channel, run /add-character and pick a character from the autocomplete — it covers public characters and your own private ones. The bot creates a webhook so the character can post under its own name, then sends a greeting.
Permissions the invite requests
| Permission | Why it is requested |
|---|---|
| View Channels | Read the channel the bot is used in |
| Send Messages | Post replies and command output |
| Manage Messages | Remove character replies when the message that prompted them is deleted |
| Embed Links | Command output and community-draw announcements are embeds |
| Manage Roles | Hand out the role used by the community draw in Reverie's own server |
| Manage Webhooks | Mandatory. Characters speak through per-character webhooks |
Without Manage Webhooks, /add-character fails and the character is not added.
Commands
Commands marked Manage Channels are only offered to members with that Discord permission.
| Command | Options | Requires | What it does |
|---|---|---|---|
/help | — | — | Lists the commands, privately |
/link-account | — | — | Posts a single-use link to join your Discord and Reverie accounts |
/add-character | name (required) | Manage Channels | Adds a character to this channel and greets |
/remove-character | name (required) | Manage Channels | Removes the character and deletes its webhook |
/list-characters | — | — | Lists this channel's characters, with a Remove button each |
/character-info | name (required) | — | Bio, description, greeting, creator, chat count, NSFW flag |
/reset-chat | — | Manage Channels | Deletes the channel's messages and summaries, and reports the counts |
/settings | a subcommand (required) | see below | Channel and personal settings |
/my-account | — | — | Credits, plan usage, renewal date, chat count |
/regenerate-reply | model (optional) | — | Re-rolls the last character reply, optionally on a different model for that try |
/reply-suggestions | — | — | Three suggested replies as buttons; tapping one sends it as your message. Text channels only |
/settings on its own is not a valid command — it always takes one of six subcommands:
| Subcommand | Option | Requires | Effect |
|---|---|---|---|
/settings model | model (optional) | — | Your model for this channel's main character. Empty shows the current one or resets it. Advanced models may require a subscription |
/settings language | language (optional) | Manage Channels | Response language for the channel. Empty resets to English |
/settings channel-mode | mode: auto or mention | Manage Channels | Whether characters reply to every message or only when addressed |
/settings chat-style | style: RP or NORMAL | Manage Channels | Roleplay prose with actions, or dialogue only |
/settings payment-mode | mode: owner or user | Manage Channels | Who is billed |
/settings daily-limit | credits (required, ≥ 0) | Manage Channels | Credit ceiling per UTC day. 0 means unlimited |
The same settings are on the web dashboard, per channel, as Payment mode, Daily credit limit, Chat style, Reply mode, Response language and Your model. Language and model stay disabled there until someone has sent a message in the channel.
When a character replies
A character answers when it is @mentioned, when someone replies to one of its messages, or when the channel is in auto-reply. Auto-reply is off by default, so a freshly added character stays quiet until addressed.
With several characters in one channel, the channel behaves as a single group chat: one prompt lists every character present and the model decides who speaks. Mentioning a name is a hint that gets passed along with your message, not a switch that forces that character to answer. Group chats →
Who pays
| Payment mode | Billed to | Notes |
|---|---|---|
| Owner pays (default) | The Reverie account that first added a character to that server | The daily credit limit applies |
| User pays | Each sender's own balance | The sender must have linked their account. The daily limit is ignored |
Messages cost the same as they do in the web app: per token, multiplied by the model's credit multiplier. The daily counter resets at 00:00 UTC, and the channel settings dialog shows today's usage against the limit.
What works in a channel
- Images. Characters can generate images in Discord.
- Voice out. Characters can send voice messages.
- Voice in. Voice messages you send are transcribed, up to 25 MB.
- Memory. Characters save, update and delete memories when the model supports tools, and world book canon is included in their context.
- History. Long channels are summarised automatically as they grow.
- Adding a second character to a channel copies that channel's chat style, payment mode and daily limit.
Editing and deleting messages
Editing your most recent message re-runs the reply to it.
Deleting a message in Discord deletes that message and every message after it from the character's history, along with memories and attachments created after that point. The character's replies are removed from the channel too. This cannot be undone.
What the bot reads
The bot receives every message in the channels it can see — that is how mentions and replies reach it. Before each reply it also reads the channel's recent messages from the past hour, including ones not addressed to it, and passes up to 15 of them to the model as context so the character can follow the room.
Treat a channel with the bot in it as a channel the bot is listening to. If that isn't what you want, put characters in a dedicated channel.
Limits
| Limit | Value |
|---|---|
| Characters per channel | 5 |
| Discord message length | 2,000 characters |
| Voice message size | 25 MB |
| Webhooks per Discord channel | 15 (Discord's own cap) |
| Queued messages per channel | 3 |
Rapid consecutive messages from the same person are merged into one turn.
Unlinking
Unlink from the integrations dashboard with Unlink Account. Removing the bot from a server or leaving it does not unlink your account.
Related
- Telegram bot — the same characters, in Telegram
- Reverie Labs — where the integrations dashboard lives
- Group chats — how multi-character conversations work
- Credits — what a message costs