How to list everyone in your Discord voice channels with one command
Need to see who is in voice before a game, meeting or community event? Enable the Free Tools & Utilities module and run !voiceroster in your server. It groups the members currently connected by voice channel, so you can read one roster instead of opening each room. This is a live snapshot: it keeps no attendance history and cannot tell you who attended yesterday.
Start freeStart free. Pro is $9.99/month.
Before you start
- Use an online Build Discord Bots bot in a Discord server you manage, with Tools & Utilities enabled. Run the example in a text channel where the bot can view the channel and send messages.
- Your Discord account needs Manage Server, or a role selected as the Voice roster role in Tools & Utilities settings. Arrange a test with members connected to ordinary voice channels.
Enable Tools & Utilities and check access
Open your bot’s Modules tab and enable Tools & Utilities. Open its Settings, select the intended server, and find Voice roster role. Leaving this role empty restricts the roster to people with Manage Server. To let event organizers use it without that permission, choose their existing Discord role and save the selected server’s settings. The setting permits roster access; it does not assign the role to anyone.
Use a staff text channel for your first prefix-command test. The !voiceroster response is posted in that channel, where others with access can read it. Its member names are plain display names rather than notifying mentions. Choose the destination with that visibility in mind, even if the people allowed to run the command are a smaller group.
Run !voiceroster with no arguments
Type `!voiceroster` in the server. There is no channel ID, user list or date argument: the command collects the occupied ordinary voice channels in that server. If your bot uses a different command prefix, replace ! with that prefix. Prefix commands need Message Content Intent enabled according to the builder’s intent checklist.
Voice-state updates use the generated bot’s existing GuildVoiceStates intent. The roster itself does not require an additional privileged intent. This access to current voice state is separate from Message Content Intent, which lets the bot read your prefix command in the text channel.
Read channel headings and member names
Each occupied voice channel has a heading with its name and member count, followed by one bullet for each connected member’s display name. Channels are ordered by their server position. For example, a room named Game Night with Alex and Sam produces a Game Night heading with 2 members, followed by Alex and Sam on separate lines. This is an illustration of the format, not a stored event report.
Empty rooms are omitted. If no ordinary voice channel is occupied, the response says “No active voice channels.” A large roster is split across replies to fit Discord’s message limit. Stage channels are not included: the implementation selects ordinary voice channels only. Read the result as the voice state the bot currently knows, and run the command again after people join, leave or move.
Check a missing or refused roster
If access is refused, check your Manage Server permission or membership of the selected Voice roster role in this server. For a prefix command with no reply, check the bot is online, the module is enabled, the prefix is correct, Message Content Intent is enabled, and the bot can read and reply in your text channel. Do not grant everyone Manage Server just to make this command available; the role setting provides narrower access.
If a connected person is missing, confirm they are in an ordinary voice channel in the same server rather than a Stage channel or a direct call. This command runs in servers only. It reads current channel membership, not a history database, so leaving voice before the command runs removes that person from the snapshot.
Use the Free module and compare plan limits
Tools & Utilities is available on Free. The published Free allowance is 1 bot, 10 custom commands and 1-day hosting log retention. Pro offers 3 bots, 200 custom commands and 30-day hosting log retention. These are account and hosting limits; custom-command allowances do not count this stock roster command.
Pro does not turn !voiceroster into an attendance tracker. Longer hosting log retention is not a voice attendance archive. Review Pricing for the broader plan comparison, and use the Tools & Utilities module page below for its other commands.
Frequently asked questions
Who can run !voiceroster?
People with Manage Server or the configured Voice roster role. Without a selected role, Manage Server is required.
Does it keep attendance history?
No. It lists current voice membership and saves no attendance history, join times or durations.
Does it include Stage channels or direct calls?
No. It lists occupied ordinary voice channels in the server where you run the command.
Is the roster available on Free?
Yes. It belongs to the Free Tools & Utilities module.
