Docs · Discord bot
LorePanic for Discord
The LorePanic Discord bot sits in your voice channel and records the session. When you stop, it transcribes the audio and a structured recap shows up in your campaign. This page covers everything from inviting the bot to configuring auto-record.
Getting started
You need two things to use the bot:
- A LorePanic account, signed in with Discord.
- The bot invited to a server where you have Manage Server permission.
Click the button below and pick the server you want to record in. Discord will show you exactly which permissions are being requested.
Link your Discord account
The bot needs to know which LorePanic account the session belongs to and which campaign to file it under. It works that out from your Discord user ID. No IDs to paste.
- Go to LorePanic → Sign in and use the Sign in with Discord button, or link Discord from your profile if you already have an account.
- Back in Discord, run
/lp-link. The bot echoes back your Discord ID so you can confirm the link worked.
Only the person who starts the recording needs a linked account. Players in the voice channel don't need LorePanic accounts at all.
Recording a session
The easy way: /lp
Run /lp from any text channel. The bot replies with an ephemeral menu (only you
see it) with buttons for every action:
- Record a Session. Pick a campaign, pick a mode, optionally pick a text channel for the transcript, name the session, join the channel.
- Session Status. Show how long the current recording has been running.
- Stop Recording. End the recording, upload tracks, trigger notes.
- Auto-record. Open the auto-record configuration wizard.
- Link Account. Instructions for linking your Discord account if you haven't already.
The direct way: /lp-record
If you prefer typed commands, you can skip the wizard:
/lp-record start campaign:<campaign_id> [name:<session name>] [mode:<mode>]
/lp-record stop
You have to be connected to a voice channel when you run start. The bot
joins whichever channel you're already in.
What happens while the bot is in the channel
- The bot joins self-muted and self-undeafened. It listens, it never speaks.
- Each speaker's audio is captured as a separate Opus stream at 48 kHz.
- Per-speaker tracks are buffered on disk and uploaded when you stop.
- Nothing is transcribed while you play: the transcript and recap are produced after the session.
Stopping
Click Stop Recording in /lp, or run /lp-record stop.
The bot leaves the channel, uploads the tracks, and queues diarized transcription. A
minute or two later, the structured recap shows up in the campaign dashboard, and in
the Discord text channel you picked if you enabled
transcript posting.
Recording modes
Every session picks one of two modes. You can set it per-session (via the wizard or the
mode: option on /lp-record start) or per-rule for auto-record.
Just the audio. The bot records per-speaker tracks and uploads them to LorePanic's object store. No transcription runs, no notes. Great for archival or when you plan to transcribe later.
Recap written for you. Records the whole session, then transcribes the full audio after you stop, with speaker labels. That transcript becomes your canonical record, and the recap (summary, NPCs, loot, open threads) is written from it.
Recaps use the shared free allowance or the model account you connect. Sessions queue up when several finish at once, and the dashboard shows your place in line.
Auto-record
Auto-record tells the bot to join specific voice channels on its own as soon as your
group gathers. You don't run /lp-record start at all. The bot is ready by
the time you are.
Setting it up
- Run
/lp-autorecord(or open/lpand click Auto-record). - Pick a voice channel (or any channel in the server).
- Pick the campaign to associate auto-recorded sessions with.
- Pick a recording mode.
- Optionally pick a text channel where the transcript and notes get posted after each session (transcript + recap mode only). Skip it to keep transcripts on LorePanic only.
You can add multiple rules (one per channel, one per campaign) and toggle them independently.
How the trigger works
- The rule fires once the channel hits at least two non-bot members.
- The bot starts a session in the chosen mode, tagged
auto. - A voice-activity watchdog stops the recording on its own after an extended silence, so an empty room doesn't record for hours.
- Running
/lp-record stopmanually still works for ending an auto-recorded session early.
Posting transcripts to Discord
The bot can deliver the finished transcript and session notes straight back to a text channel in your server, so the whole table gets the recap without anyone opening a dashboard. It's opt-in per session or per auto-record rule: pick no channel and nothing is ever posted.
Turning it on
- For a single session: in the
/lprecording wizard, the confirmation screen has a channel picker labelled "Post transcript to a channel (optional)". Pick one before hitting Start Recording. - For auto-record: the
/lp-autorecordsetup asks for a transcript channel right after the recording mode. The choice sticks for every session that rule records. Re-run the setup for the same voice channel to change or remove it.
The option only appears for the transcript + recap mode. Audio-only sessions have no transcript to post.
What gets posted
- A short embed with the session name, campaign, duration, and the two-sentence recap.
- A
session-notes.mdattachment containing the structured notes (summary, key events, NPCs, locations, combats, loot, open threads) followed by the full speaker-labelled transcript. - A link to the session on LorePanic for the interactive version.
The post lands within a minute of transcription finishing, even for auto-recorded sessions where nobody touched a command. When a session was set to post somewhere, the consent message the bot drops at recording start says so, so everyone in the channel knows where their words are going.
Command reference
| Command | What it does |
|---|---|
/lp | Open the main menu. Record, check status, stop, auto-record, or link account via buttons. |
/lp-record start | Start recording the voice channel you're in. Options: campaign (required), name, mode. |
/lp-record stop | End the active recording, upload tracks, trigger diarized transcription. |
/lp-status | Show what the bot is currently doing in this server: channel, duration, who started it. |
/lp-link | Show your Discord ID and the steps to link your Discord account to LorePanic. |
/lp-autorecord | Configure auto-record rules for this server, including the optional transcript channel. |
Options on /lp-record start
campaign. The LorePanic campaign ID this session belongs to. The wizard in/lpfills this for you.name. Optional human-readable session name. Defaults to a timestamp.mode. Eitheraudio_onlyorbatch(transcript + recap). Defaults tobatch.
Permissions the bot needs
The invite link asks for exactly what's required, nothing more:
- View Channels, so the bot can see voice channels.
- Send Messages, Embed Links, Use Application Commands, for slash-command responses.
- Connect and Speak, to join voice channels. The bot joins self-muted; Speak is only there because Discord requires it to subscribe to voice.
- Use Voice Activity, required to capture per-speaker audio.
The bot does not need Administrator, and it doesn't read messages outside of the slash-command interactions you send it.
Privacy & data
- Audio capture is opt-in per session. The bot only records when you explicitly start a session or when an auto-record rule you set up fires.
- Tell your players. Like any recording, make sure everyone in the voice channel knows the session is being recorded.
- Storage. Per-speaker tracks go to LorePanic's object store. Transcripts and structured notes live in the database, scoped to the campaign.
- Deletion. Delete a session from the LorePanic campaign dashboard and its audio, transcript, and notes go with it.
- Third parties. Audio is transcribed on LorePanic's own server by default, and sent to Mistral (Voxtral) only if that fails. Recaps are written by the default model provider, or by the model account you connected. The privacy policy has the full breakdown.
Troubleshooting
"This Discord account isn't linked to LorePanic"
Sign into LorePanic using the Sign in with Discord
button, or link Discord from your profile, then try again. Run
/lp-link to confirm your Discord ID matches.
The bot won't join the voice channel
- Make sure you are connected to the voice channel when you run
/lp-record start. - Check the channel permissions. The bot needs Connect, Speak, and Use Voice Activity on that specific channel, not just server-wide.
- If the channel is full (user limit reached), the bot can't join. Raise the limit or use a different channel.
Transcript isn't showing up yet
Transcription starts once you stop the recording. If several sessions finished at the same time, yours waits in a queue and the session page shows its position. Audio is persisted every 2 minutes during the session, so nothing is lost while you wait.
I stopped but no session notes appeared
Note generation runs after the batch transcription finishes, which takes about a minute per 10 minutes of session. If it's been longer than that and nothing has shown up, check the session page. Errors are surfaced inline. If the shared allowance ran out for the day and no model account is connected, the transcript still completes but the recap waits: connect your own account or retry the next day.
How do I kick the bot mid-session?
Run /lp-record stop. Discord's right-click → disconnect also works,
but it skips the graceful upload step. The command is safer.
Still stuck?
Read the engineering blog post for a deep dive into how the bot was built, or get in touch via the contact link in our legal notice.