Discord bot
Chat one-on-one in your DMs, or put characters in a server and decide who can talk to them and who pays.
The Reverie bot brings characters to Discord in two places: your direct messages with the bot, for one-on-one chats, and server channels, where each character speaks under its own name and avatar. Everyone who talks to a character needs a Reverie account linked to their Discord account — a free one is enough — and every reply is billed in credits to a Reverie account.
Link your account
One Discord account maps to exactly one Reverie account. Any of these joins them:
- From the integrations dashboard. In the app, go to Labs → Discord & Telegram Bots and press Link with Discord on the Discord card. You confirm on Discord and come straight back.
- By signing in with Discord. Signing in to Reverie with Discord links the bot too — unless you unlinked it on the dashboard, in which case it stays unlinked until you link it again yourself.
- From Discord. Run
/link-accountin a server or in your DMs with the bot. Only you see the reply: a Link my account button that works once and expires after 10 minutes. Open it, sign in, and the accounts are joined.
Chat one-on-one in your DMs
Send the bot a direct message, or run /chat in any server the bot is in — the conversation moves to your DMs, where only you can see it. /chat on its own offers characters to pick from; add a name to search for one.
- One character at a time.
/chatswitches to someone else, and/chatslists the characters you have talked to in your DMs. Each keeps its own conversation, so switching back picks up where you left off. - Every message gets a reply, posted by the bot with the character's name in small text above it. Images, voice messages and memory work as they do in a channel.
- You pay for your own messages. Server payment modes and limits don't apply.
- 18+ characters follow your account's 18+ setting: with it off, they are hidden and can't chat in your DMs.
/remove-characterends the current conversation — it stays saved for/chats— and/reset-chatclears it after asking you to confirm.- Of the
/settingssubcommands, onlymodel,languageandchat-styleapply to DMs.
If the bot says it couldn't message you, allow direct messages from server members in your Discord privacy settings and try again. Your recent DM conversations also appear on the integrations dashboard under Private chat, where Continue on web picks one up in the browser.
Add the bot to a server
Invite the bot
Press Add Bot to Server on the Discord card of the integrations dashboard and pick a server. Leave every requested permission ticked — see the table below for why each one is there. When it joins, the bot posts a short getting-started message where the server's join messages go.
Add a character to a channel
In a text channel, run /add-character and pick a character from the autocomplete — it covers public characters and your own private ones. You need the Manage Channels permission and a linked account. The bot creates a webhook so the character can post under its own name, then sends a greeting.
Set the rules
Optional. /settings decides how a channel's characters reply and who pays for them; /server decides who may talk to them at all. Both are covered below.
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
In a server, commands marked Manage Channels or Manage Server are only offered to members with that Discord permission. Replies to account and management commands are visible only to you.
| Command | Options | Where | What it does |
|---|---|---|---|
/help | — | server, DM | Lists the commands, privately |
/link-account | — | server, DM | Posts a single-use link to join your Discord and Reverie accounts |
/chat | name (optional) | server, DM | Picks or switches the character in your DMs. In a server, sends the choice to your DMs |
/chats | — | server, DM | The characters you've talked to in your DMs, to switch between |
/add-character | name (required) | server · Manage Channels | Adds a character to this channel and greets |
/remove-character | name (required) | server · Manage Channels, DM | Removes the character and deletes its webhook. In your DMs, ends the current conversation |
/list-characters | — | server | Lists this channel's characters, with a Remove button each |
/character-info | name (required) | server, DM | Bio, pictures, age, gender, rating, categories, tags and NSFW flag, with a link to the character's page. With a linked account, it also offers 1–5★ buttons to rate the character once you've had a few replies from it and its reviews are open |
/reset-chat | — | server · Manage Channels, DM | Deletes the channel's messages and summaries, and reports the counts. In your DMs, clears the current conversation once you confirm |
/regenerate-reply | model (optional) | server, DM | Re-rolls the last character reply, optionally on a different model for that try |
/reply-suggestions | — | server, DM | Three suggested replies as buttons; tapping one sends it as your message |
/settings | a subcommand (required) | server, DM | Channel and personal settings |
/plugins | a subcommand (required) | server, DM | Shows the plugins running here; installs, removes or switches official plugins and your own |
/server | — | server · Manage Server or the host | Who can talk to characters, a daily limit per member, blocked members, and usage |
/my-account | — | server, DM | Credits, plan usage, renewal date, chat count |
/daily | — | server, DM | Claims your daily check-in |
/notify | — | server, DM | Whether characters may message you first, and which notifications reach your DMs |
/plugins takes list, install, remove, enable or disable. Only official plugins and your own are offered, and only prompt and tool plugins; a plugin that needs settings filled in can't be installed from the bot. A tool plugin's result is posted as a short card under the character's name. In a channel, changing plugins needs Manage Channels or having added a character to the channel, and anyone can list them; in your DMs they are yours to change.
/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 →
Threads
A thread in a text channel talks with that channel's characters and follows its payment mode, reply mode and chat style, but keeps a history of its own — room for a side scene that doesn't clutter the channel. It starts in the channel's response language; /settings language and /settings model used inside it apply to the thread alone. What a thread spends counts toward the channel's daily limit. Commands that change the cast or the channel's other settings, such as /add-character, /list-characters, /plugins or /settings chat-style, point you to the parent channel. Forum posts and other kinds of thread have no characters.
Who pays
| Payment mode | Billed to | Limits that apply |
|---|---|---|
| Owner pays (default) | The server's host: the Reverie account that first added a character to the server, until someone else takes over | The channel's daily credit limit, and the daily limit per member set with /server |
| User pays | Each sender's own balance | None — each member is bounded by their own balance |
Messages cost the same as they do in the web app: per token, multiplied by the model's credit multiplier. The daily counters reset at 00:00 UTC, and the channel settings dialog on the dashboard shows today's usage against the limit.
To put the bill on your own account — say, whoever set the bot up has left — open /server and press Pay with my account. It applies to every channel in the server where the host pays.
Server rules
/server opens a panel only you can see. Members with Manage Server can open it, and so can whoever pays for the server's characters. It shows usage today and over the last seven days, the members who used the most today, and three rules:
| Rule | Choices |
|---|---|
| Who can talk | Everyone (the default), Admins only, or Members with certain roles — picked in a second menu |
| Daily limit per member | How much of the host's credits one member may spend per UTC day, or No limit (the default). Applies only where the host pays |
| Blocked members | Members picked here can't talk to characters anywhere in the server |
Here an admin is a member with Manage Server. Admins and the paying account are never shut out, by a block or by the access mode, and until a role is picked, Members with certain roles lets only them talk. A member the access mode leaves out is told once that only some members can talk to characters; a blocked member gets no reply at all.
Age-restricted characters
An 18+ character only replies in an age-restricted channel, in a channel under an age-restricted category, or anywhere in a server set to 18+ — a thread follows its channel. Anywhere else, the bot explains why instead of replying. In your DMs, they follow your account's 18+ setting instead.
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.
Notifications and check-ins
/notify sets two things. Characters messaging you first is your account's proactivity level, the same setting as on the website: with a subscription, the character you are talking to in your DMs can write to you first — see Proactive messages. Also send me here picks which of your Reverie notifications are delivered to your DMs as well; only Account & billing is on at first — see Notifications. The integrations dashboard offers the same choices.
/daily claims your daily check-in, the same one as on the website, and links to the lucky draw.
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 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. Once unlinked, signing in with Discord no longer links the bot on its own — use Link with Discord or /link-account when you want it back.
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