How to log voice channel joins and leaves in Discord
Want a channel message when someone connects to voice, disconnects or switches rooms? Enable Logging and choose its voice events. Voice logging requires Pro: Free’s join and leave logs describe members joining or leaving the server, not voice channels. This guide sets up the destination and tests the three supported voice transitions.
Start freeStart free. Pro is $9.99/month.
Before you start
- Have an online Build Discord Bots bot with Logging enabled in a test server and Pro access for full audit logging. Use a Discord account with Manage Server for the logging configuration commands.
- Prepare a text channel such as #voice-logs. Allow the bot View Channel, Send Messages and Embed Links there, including any category or channel overrides.
- Follow the builder’s intent checklist for Logging. Generated bots request GuildVoiceStates for voice events; prefix commands also depend on Message Content Intent. The wider Logging module declares Server Members Intent for its member features.
Check Pro access before enabling voice events
The Free logging allowance covers server member joins and leaves plus individual message edits and deletions. It includes no voice join, voice leave or voice move events. Pro’s full audit allowance adds voice activity alongside role, channel, ban and nickname events. Keeping Logging enabled on Free is useful for the basic events, but it does not make voice tracking available.
Turning on a voice switch alone does not bypass the plan limit. Free’s event handler suppresses all three voice switches when the Free cap is enforced, even if saved settings show them enabled. Pro permits the saved switches to take effect; it does not automatically turn them on. Compare access on Pricing and confirm your bot has the current plan configuration before testing.
Select the Audit Log Channel and check delivery
Open your bot’s Modules tab, enable Logging and open its Settings. Select the intended server and choose #voice-logs in Audit Log Channel, then save. None leaves logging output disabled. The module uses this one configured destination for the voice embeds as well as other enabled logs; it does not route voice events to a separate category channel.
From Discord, a manager can set the same destination with !logchannel #voice-logs, using the actual channel mention. Run !testlog and check that the test embed arrives in that channel. This checks the output route; it does not prove that a voice event is enabled or allowed by your plan. Replace ! throughout these examples if your bot uses another prefix.
For a private staff channel, inspect the bot’s effective View Channel, Send Messages and Embed Links permissions there. Logging sends embeds to the selected text channel. The voice handler observes state changes; it does not connect the bot to voice or record audio. Give staff access to the destination if they need to read the logs.
Turn on Voice Joins, Voice Leaves and optional Voice Moves
In Logging Settings, find the Voice group. Enable Voice Joins and Voice Leaves. Enable Voice Moves too if you want a message when a member switches directly between rooms, then save. These events default to off. Choosing Comprehensive enables them along with the other logging events; Minimal and Standard do not enable voice events. Individual switches give you a more focused configuration.
The equivalent manager commands are !logtoggle voicejoin on, !logtoggle voiceleave on and !logtoggle voicemove on. Use on explicitly rather than omitting it: an omitted state toggles the existing value. Run !logs to review the saved configuration. That dashboard describes saved switches, so combine it with the Pro access check and a real transition test.
Test a join, a move and a leave separately
With the bot online, ask a consenting test member to connect from no voice channel into Room A. The join embed names the member and destination channel, includes the user ID and has a timestamp. Next, switch from Room A directly into Room B. With Voice Moves enabled, the move embed shows From and To channels. A direct switch is handled as one move, not as a separate leave and join.
Disconnect from Room B to test a leave. The leave embed identifies the member and the channel they left. Changing mute or deaf status while staying in the same room does not create one of these three logs. Pause at least five seconds before repeating the same event for the same member: the sender suppresses matching server, event-title and user-ID combinations within five seconds, even when a different room is involved.
Troubleshoot missing events and understand the history limits
If the test embed arrives but voice messages do not, check Pro access, the selected server’s three voice switches and the bot’s online state. If even !testlog fails, check the configured channel and its permission overrides first. A missing prefix reply also warrants checking your prefix and Message Content Intent. The related module pages explain the wider Logging and Moderation features.
These are messages about voice-state events received by the running bot. The voice handler has no attendance database, session-duration calculation, audio recording or startup catch-up for missed transitions. A leave message does not state how long someone stayed. Treat the channel as a useful activity feed, rather than a complete attendance register; rapid repeated events may be suppressed by the sender’s deduplication.
Frequently asked questions
Can Free log voice channel joins and leaves?
No. Free logs server member joins and leaves, not voice transitions. Voice joins, leaves and moves require Pro full audit logging.
Does switching rooms produce a leave and a join?
A direct switch produces one move log when Voice Moves is enabled.
Which permissions does the log channel need?
Allow the bot View Channel, Send Messages and Embed Links. Managers need Manage Server for logging commands.
Does this record audio or calculate attendance duration?
No. The voice handler posts transition embeds without recording audio, calculating session duration or recovering missed offline events.
