Numbering
These count the rooms under the same creator channel, so your list of voice channels reads like a tidy series. The count starts at one, so the first room is 1.
| Token | What it does | Example |
|---|---|---|
## | Room number with a hash in front | #2 |
$# | Room number on its own, with no hash in front | 2 |
$0# | Zero-padded room number. Add more zeros for more padding. | 02 (or 002 with $00#) |
+# | Room number as a Roman numeral | II |
People
Member counts skip bots, so a music bot parked in the corner never inflates your numbers.
| Token | What it does | Example |
|---|---|---|
@@nato@@ | NATO phonetic word for the room number. It wraps past 26 with a cycle number. | Bravo |
@@creator@@ | The room creator's display name, or the custom name they set with /nick | Pixel |
@@num@@ | How many members are in the room, bots aside | 4 |
@@num_others@@ | How many members are in the room, not counting the creator | 3 |
Games and streams
The game name is whatever most people in the room are playing. A two-way tie shows both games, and three or more different games fall back to your "no game" label (which is General by default). Long titles get shortened by built-in aliases, so League of Legends becomes LoL and Counter-Strike: Global Offensive becomes CS:GO. You can add your own per-server aliases in /settings.
| Token | What it does | Example |
|---|---|---|
@@game_name@@ | The room's representative game, run through aliases | LoL |
@@stream_name@@ | The creator's stream title while they are live, and empty otherwise | ranked grind, day 3 |
@@num_playing@@ | How many people are in the game's party, or playing it if there is no party | 3 |
Rich presence
Some games publish extra detail through Discord's rich presence, like party size, what you are queued for, or which map you are on. When the room's game has more than one party, AVC reports the biggest one.
| Token | What it does | Example |
|---|---|---|
@@party_size@@ | The party's maximum size. If the game does not say, it falls back to the room's user limit. | 5 |
@@party_state@@ | The party's state line straight from the game | In a Group |
@@party_details@@ | The party's details line straight from the game | Competitive, Dust II |
Random and plural
Randomness is rolled once per room, from a seed stored when the room is created, so a random pick never triggers a rename later. The default template leans on this with a random emoji and word that stay put for the room's whole life.
| Token | What it does | Example |
|---|---|---|
@@random_emoji@@ | A random emoji, picked once per room from the seed so it stays put for good. The default template uses one. | 🦖 |
[[a/b/c]] | Picks one option at random, fixed once per room and never re-rolled | b |
<<one/many>> | Singular when exactly one member is in the room, plural otherwise. Use a \ instead of / to count members without the creator, or a | to count players in the biggest rich-presence party instead (same count as @@num_playing@@). | many |
Resting and in use
Point /template at an existing standalone voice channel and you can give it two names at once: a resting name for when it sits empty, and a busy name for when someone is in it. Write them as __resting/in use__ and AVC swaps between them as people come and go. Only the first / splits the two sides, so the busy side can still contain slashes, and tokens inside either side fill in as normal.
For example, __💤 Chill Zone/🎮 @@game_name@@__ shows 💤 Chill Zone while the channel is empty and 🎮 Halo once someone joins and starts playing.
Conditionals
The {{condition ?? yes // no}} form shows one thing when a condition holds and another when it does not. The // no branch is optional. Leave it off and the whole block just disappears when the condition is false. Conditions can also compare, so {{PLAYERS >= 4 ?? full squad}} works, with <, >, <=, >=, = and != all supported. Blocks nest, and they resolve from the innermost one out.
| Condition | True when | Example |
|---|---|---|
PLAYING | Someone in the room is playing a game, so it is not on the "no game" label | {{PLAYING ?? 🎮 // 💤}} |
LIVE | The creator is streaming, whether Discord Go Live or an external stream | {{LIVE ?? 🔴 // 🎧}} |
LIVE_DISCORD | The creator is screen sharing in the room with Discord Go Live | {{LIVE_DISCORD ?? 📺}} |
LIVE_EXTERNAL | The creator is streaming on an outside site like Twitch | {{LIVE_EXTERNAL ?? 🟣}} |
ROLE:id | The creator has the role with that id | {{ROLE:123456789 ?? ⭐ VIP room}} |
GAME | Used with : to match the game name | {{GAME:Minecraft ?? ⛏️}} |
PLAYERS | Compares against the number of people in the party | {{PLAYERS >= 5 ?? stacked}} |
MAX | Compares against the party's maximum size | {{MAX = 5 ?? 5-stack lobby}} |
RICH | The game is publishing rich-presence detail | {{RICH ?? @@party_details@@ // @@game_name@@}} |
Styling text
Wrap any part of a name in ""mode:text"" to restyle it. The tokens inside are filled in first, then the style is applied to the result, so ""caps:@@game_name@@"" shouts whatever game is on. Chain styles with a + to run them in order, like ""lower+scaps:..."". An unknown style just leaves the text as it was, so a typo never breaks a name.
| Mode | What it does | Example |
|---|---|---|
upper / caps | UPPERCASE | ""caps:squad"" becomes SQUAD |
lower | lowercase | ""lower:LOUD ROOM"" becomes loud room |
title | Title Case On Each Word | ""title:the war room"" becomes The War Room |
swap | Swaps the case of every letter | ""swap:HeLLo"" becomes hEllO |
scaps | Small caps. Only lowercase letters convert, so pair it as lower+scaps. | ""lower+scaps:crew"" becomes ᴄʀᴇᴡ |
spaces | Trims the ends and collapses repeated spaces into one | ""spaces:too many gaps"" becomes too many gaps |
acro | Keeps only the first letter of each word | ""acro:deep rock galactic"" becomes drg |
remshort | Drops little filler words (a, an, and, at, by, from, in, is, of, on, or, the, to) | ""remshort:the king of the hill"" becomes king hill |
<N>w | Keeps the first N words, so 2w keeps two | ""2w:ranked grind day three"" becomes ranked grind |
rand | Randomised upper and lower case, fixed once so it never re-shuffles | ""rand:chaos"" becomes cHaOs |
uwu | uwu speak | ""uwu:really cool"" becomes weawwy coow |
usd | Turns the text upside down | ""usd:goblins"" becomes suᴉlqoƃ |
There are also thirteen fancy lettering styles that swap the alphabet for a Unicode font: bold, italic, bolditalic, script, boldscript, fraktur, boldfraktur, double, sans, boldsans, italicsans, bolditalicsans, and mono. They look striking but are harder to read, so save them for a name that really wants to stand out.
Worked examples
Here is what real templates actually turn into, mid-session:
| Template | Becomes |
|---|---|
@@game_name@@ ## | Apex #3 |
@@creator@@'s [[den/lair/hangout]] | Pixel's lair, and it stays "lair" for good |
@@nato@@ · @@num@@ <<person/people>> | Charlie · 4 people |
{{LIVE ?? 🔴 @@stream_name@@ // @@game_name@@ ##}} | 🔴 ranked grind, day 3 while streaming, and CS:GO #1 otherwise |
@@game_name@@ {{RICH ?? (@@num_playing@@/@@party_size@@)}} | Valorant (3/5), and the party bit vanishes for games without rich presence |
""lower+scaps:@@creator@@'s crew"" | ᴏɴᴢᴀ'ꜱ ᴄʀᴇᴡ for a creator named Onza |
{{PLAYING ?? @@game_name@@ ## // @@creator@@'s room}} | Apex #3 while a game is on, and Pixel's room when the room is just hanging out |
Edit any of this live with /template. It shows you a preview of the rendered name before you commit.