Can a Discord Bot Be in Multiple Voice Channels?

ShotCaller··10 min read
Can a Discord Bot Be in Multiple Voice Channels?

Can a Discord Bot Be in Multiple Voice Channels?

No. A Discord bot account can hold one voice connection per server, so it can sit in exactly one voice channel on each server it's in. Ask it to join a second channel on the same server and it moves there, leaving the first. A bot can be in voice on many different servers at once, though. To get audio into several channels on one server, you need several bot accounts, each joined to its own channel, plus something that passes audio between them.

That's the short version. Below is where the limit comes from, what the multi-bot workaround takes to build and run, and when it makes more sense to use a relay someone else already built.

Why a bot can't join two voice channels on one server

The limit comes from how Discord's gateway handles voice. To join voice, a client (bot or human) sends an Update Voice State payload. It carries a guild_id and a channel_id, and Discord describes it as the event "sent when a client wants to join, move, or disconnect from a voice channel." There's one voice state per account per server. Send a new channel_id for the same guild_id and you've moved; send null and you've left. The payload has no way to say "and also this other channel."

Libraries follow that model. The discord.js guide on voice connections says it plainly: "You can only connect to one voice channel in a guild at a time." It also explains what happens if you try anyway. Calling joinVoiceChannel for another channel in the same guild means "the existing voice connection switches over to the new channel." That's why getVoiceConnection in @discordjs/voice looks a connection up by guild ID: there's only ever one per bot per guild to find.

Other libraries behave the same way, because the limit sits on Discord's side.

Developers have asked Discord to change this. A feature request on the API docs repository, Allow bots to have multiple instances in voice chats, was opened in October 2022 and notes that "bots are restricted to having only one instance in one voice channel." The thread has comments into 2025, and Discord hasn't answered it there.

Users live under the same rule, which is why people end up running second accounts to sit in two calls. We cover the human side in Can You Be in Two Discord Calls at Once?

The workaround: one bot per channel, plus a relay

Since one bot equals one channel per server, a bot that "plays in five channels" is really five bot accounts. For live voice, say a raid leader who should be heard in every party channel, the usual design looks like this:

  1. A listener bot joins the source channel and receives the speaker's audio.
  2. A speaker bot joins each target channel.
  3. Your code takes the audio the listener receives and has every speaker bot play it.

It sounds simple. Each piece has a cost, though.

Several applications and tokens

Each speaker bot is a separate application in the Discord Developer Portal, with its own token, its own gateway session and its own invite link. Server admins have to add every one of them and give each one Connect and Speak in the right channel. If you publish the bots for other servers, each application goes through Discord's app verification on its own once it grows past 100 servers.

Running several clients in one process also takes some care. In @discordjs/voice, joinVoiceChannel takes an optional group identifier, which you'll need so that each bot's connection in the same guild is tracked separately instead of replacing the others.

Receiving and re-sending audio

Discord sends voice as Opus, which the voice connections docs describe as "two channels (stereo) and a sample rate of 48kHz." In discord.js, the listener subscribes to a user through its VoiceReceiver and gets a stream of Opus packets back.

What happens next depends on how many people you relay:

  • One speaker at a time: you can pass the Opus frames straight through to each speaker bot. That's cheap on CPU and adds very little delay.
  • Two or more speakers who might talk together (a main caller and a backup, for example): you have to decode each stream to PCM, mix them, and encode the result back to Opus. That costs CPU on every frame, for every channel you feed.

You also have to respect the protocol's details. A client must send a Speaking payload before any audio or Discord disconnects it, and the docs ask for five frames of silence before you stop transmitting so the receiving side doesn't interpolate garbage. Discord has also moved voice channels to end-to-end encryption with its DAVE protocol, so your voice library has to support it on both the receiving and the sending side.

Latency

Each hop adds delay: the speaker's client to Discord, Discord to your listener, your processing, then your speaker bots back to Discord and out to listeners. Passthrough keeps your share small. Mixing and jitter buffering add more. For music that's fine. For a shotcaller saying "stack now," every extra few hundred milliseconds shows up in the fight.

Hosting and uptime

A voice relay has to stay connected the whole time it's in use. It needs UDP, a host close to Discord's voice regions, and enough CPU for whatever encoding you do. Gateway reconnects, voice server region changes and a bot getting kicked from one channel all have to be handled without dropping the rest. If one speaker bot falls over mid-raid, that party goes silent and usually nobody notices until someone asks why the calls stopped.

Rate limits and housekeeping

Each bot has its own rate limits, including the global cap of 50 requests per second per bot, and the IP-level limit on invalid requests (10,000 per 10 minutes) is shared by everything you run from the same address. A fleet of bots that keeps retrying a missing permission can get your whole host temporarily blocked. You'll also want a way to assign bots to channels, recover a bot that's already in use elsewhere on the server, and clean up connections when a session ends.

The protocol side is well documented. Most of the time goes into keeping the relay reliable after the first test works.

DIY relay vs a ready-made relay

Build it yourself Ready-made relay (ShotCaller)
Bot accounts One application and token per channel, created and invited by you Listener and speaker bots provided, invited from the dashboard
Audio handling Your code: Opus receive, passthrough or decode, mix and re-encode Handled by the service
Encryption (DAVE) Your voice library must support it Handled by the service
Latency Depends on your design and host ShotCaller lists relay latency as under 100ms
Hosting Your server, running whenever you need voice Hosted
Talk-back from target channels Extra listeners and routing you write Party leaders use Discord's Push to Talk (Priority) key
Cross-server Separate bots invited to each server, plus routing Alliance plan covers two servers
Cost Your time plus hosting Paid plan after a 7-day free trial
Best for Custom behavior, learning, unusual audio pipelines Guilds that just need one voice in many channels

Building it yourself makes sense if you need something no product does, such as custom audio processing, an integration with your own game server, or you simply want to learn how Discord voice works. If the goal is one caller heard in every party channel, the build mostly reproduces what already exists.

If you just need one voice in many channels

That's the case ShotCaller was built for. A listener bot sits in your shotcaller channel and a speaker bot sits in each party channel. When the caller talks, every speaker bot plays the audio in its own channel at the same time. Members stay in their own channels, keep talking to their party, and install nothing.

It also works in the other direction. Party leaders with Discord's Priority Speaker permission hold their Push to Talk (Priority) key, and their voice reaches the shotcaller channel too. The talk-back guide covers the setup, and the cross-server guide shows how to reach an allied guild's server.

For a step-by-step walkthrough of channel layout and roles, read How to Broadcast One Voice to Multiple Discord Channels. To get going directly, follow the ShotCaller Discord bot setup guide. Every plan starts with a 7-day free trial, and the current plans are on the pricing page.

FAQ

Can a Discord bot be in voice channels on multiple servers at once?

Yes. The limit is one voice connection per server, so a single bot can be in one voice channel on each of many servers at the same time. That's how a music bot plays on many servers from one account.

Can one bot be in two voice channels on the same server?

No. Joining a second channel on the same server moves the bot's existing connection, as the discord.js guide notes. To be in two channels on one server you need two bot accounts.

Do Stage channels count toward the limit?

Yes. A bot joins a Stage channel through the same voice connection it uses for regular voice channels, so a bot on a Stage can't also be in a voice channel on that server.

Is running several bots to relay voice against Discord's rules?

We're not aware of any Discord rule against running several bot applications, and relay services work this way. Each bot has to follow Discord's Developer Terms and Developer Policy on its own. Because a relay processes people's voices, tell your members what the bots do, and don't record or store audio without their consent.

How do music bots play in several channels on one server?

They don't, with one account. Some music bots offer a second or third bot you invite separately, each of which can join a different channel. Under the hood it's the same one-bot-per-channel rule.

Can I make a bot that joins every voice channel on my server?

Only with one bot account per channel. If your server has ten voice channels that need audio, you need ten speaker bots, each invited and given permission to connect and speak.

Will Discord ever allow multiple voice connections per bot?

There's an open request for it on the discord-api-docs repository, and Discord hasn't responded to it there. Build for the current one-connection rule.

The short answer

One bot account gets one voice channel per server, and that comes from Discord's gateway, so no library or setting gets around it. Multiple voice channels means multiple bots and a relay to connect them. You can build that relay if you want full control, and you'll be running it for as long as you use it. If you need one caller heard across every party channel, set up the ShotCaller Discord bot and try it during the free trial.

Ready to dominate your battlefield?

Transform your Discord guild coordination in 30 sec. Join 500+ winning guilds.

Ready to dominate your battlefield?

Transform your Discord guild coordination in 30 sec. Join 500+ winning guilds.

Free to try • No credit card required • Works with any Discord server