Voice Linking
Give a role and open a private chat while somebody is in a voice channel, and take both back when they leave, including in the temporary rooms your hubs create.
On this page
Two jobs in one system: a role while somebody is in a voice channel, and a text channel only the people in the call can see. They live together because a server that wants either almost always wants both about the same channel, and two systems would mean two exemption lists that can disagree.
How a link is built
A link is a source plus up to three effects: roles, a private chat, and join and leave messages. A server holds up to 10 links, each with its own page.
Switch it on
Utilities → Voice Linking, then Create Link.
Choose the source
Specific channels, A whole category, Every voice channel, or Temporary voice channels (the rooms a Temporary Voice hub creates). The last three also cover channels made later: a voice channel you add to the category next month, or a room that exists only while somebody is in it.
Add the effects
Roles, a private chat, join and leave messages, in any combination.
Publish
Nothing is written until you press Publish or Save draft, so opening the page and backing out leaves nothing behind.
The three effects
- Roles
- Up to five, in one of three modes: Give while connected (the default), Take while connected (the reverse case: hiding something from people who are in the call), or Give and keep, which gives the role the first time and never takes it back.
- Private chat
- Up to five text channels. Each connected member gets a permission overwrite of their own granting View Channel and Read Message History, plus Send Messages while They can talk in it is on (the default). Discord caps a channel at 500 overwrites, which is why the limit is low.
- Join and leave messages
- Say when somebody joins and Say when somebody leaves, both off by default, post in the linked chat, and Delete the message after can remove each one after up to an hour. Plain text by default (
{user_mention} joined {channel}. Welcome.), with an embed one switch away. Placeholders:{user_mention},{user},{display_name},{username},{user_id},{user_avatar},{channel},{channel_name},{voice_member_count},{server}and{server_icon}.
The chat has to be hidden from @everyone
Arclo only ever adds access, so a channel everybody can already read stays readable. The builder warns about a linked chat @everyone can see and offers Hide from @everyone. Create a private chat for me makes one that is hidden from the start, in the voice channel's category. On a Temporary Voice source, Create a private chat for each room gives every room a hidden chat of its own, created when somebody joins and deleted, with everything said in it, when the room closes.
Exceptions and timing
- Except these channels
- Carve channels out of a category- or server-wide link: the AFK channel, a music channel. Checked first, so it always wins.
- Include stage channels
- On by default: a stage counts as a voice channel. Switch it off to leave stages out of a category- or server-wide link; a stage picked by name is always covered.
- Roles and members this link skips
- Up to 25 of each. Skip bots is on by default, so a music bot never holds the role or keeps the chat occupied.
- Wait before taking it back
- Off by default, up to 5 minutes. Keeps the role and the access through a reconnect or a channel switch, and the leave message waits for it too, so a four-second drop posts nothing at all.
- Clear it when the channel empties
- Wipes the linked chat once the last person leaves, after Wait before clearing (10 seconds by default), which is canceled if anybody comes back. Up to 200 messages a pass, and none older than 14 days, Discord's limit.
Handing things back
Arclo records what it actually changed
Every grant records the role and the mode it was granted in, so releasing undoes exactly that and nothing anybody already had. A member who already held the role before joining the call keeps it afterwards.
- Switching the system off releases everything it was holding rather than leaving it behind.
- Deleting a link releases its grants first.
- A restart does not strand anybody. With Tidy up after a restart on (the default), Arclo checks who is actually in voice when it comes back and takes back anything left over. Sync now on the list page does the same on demand.
- The AFK channel doesn't count as being in voice, off by default, takes the role and the chat from somebody who idles into AFK.
- Log voice link activity records links being made and changed, and, if you switch them on, every role and chat handed out as people come and go.
What the card tells you
Each link's card reads it back as one sentence (the same one /voicelink list prints), with how many members hold it now and how many times it has been applied. Its label is Draft, Paused, Last run failed, Needs setup or Active. Needs setup exists because “switched on and doing nothing” is a state this system can silently be in: a link that covers no channels, or has no role and no chat to hand out.
Commands
/voicelink add <voice> [role] [text] [name]Manage ServerLinks a voice channel to a role, a private chat, or both. Run it again on the same channel to add to the link that is already there.
/voicelink listManage ServerLists every voice link in the server and what each one hands out.
/voicelink remove <voice>Manage ServerCannot be undoneUnlinks a voice channel and takes back everything the link was handing out, from everybody still holding it.
/voicelink syncManage ServerRe-applies every link to whoever is in voice right now, and releases access left over from a restart or an edit.
Still stuck? Ask in the support server: somebody there has almost certainly configured this before.
