Docs · name templates

Rooms that name themselves.

Every voice channel AVC makes builds its own name from a template, live, from who is inside and what they are playing. Drop a few tokens into your template and the name keeps up as people come and go. Every token works on every server.

Discord rate-limits channel renames. A channel's name can only change so often (currently twice per 10 minutes), so a name built entirely from fast-moving tokens like @@num@@ or @@game_name@@ will fall behind during a busy session. For anything that changes a lot, put it in the voice status instead. Discord allows status updates far more often, so it can keep up in real time where the name can't.

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.

TokenWhat it doesExample
##Room number with a hash in front#2
$#Room number on its own, with no hash in front2
$0#Zero-padded room number. Add more zeros for more padding.02 (or 002 with $00#)
+#Room number as a Roman numeralII

People

Member counts skip bots, so a music bot parked in the corner never inflates your numbers.

TokenWhat it doesExample
@@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 /nickPixel
@@num@@How many members are in the room, bots aside4
@@num_others@@How many members are in the room, not counting the creator3

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.

TokenWhat it doesExample
@@game_name@@The room's representative game, run through aliasesLoL
@@stream_name@@The creator's stream title while they are live, and empty otherwiseranked grind, day 3
@@num_playing@@How many people are in the game's party, or playing it if there is no party3

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.

TokenWhat it doesExample
@@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 gameIn a Group
@@party_details@@The party's details line straight from the gameCompetitive, 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.

TokenWhat it doesExample
@@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-rolledb
<<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.

ConditionTrue whenExample
PLAYINGSomeone in the room is playing a game, so it is not on the "no game" label{{PLAYING ?? 🎮 // 💤}}
LIVEThe creator is streaming, whether Discord Go Live or an external stream{{LIVE ?? 🔴 // 🎧}}
LIVE_DISCORDThe creator is screen sharing in the room with Discord Go Live{{LIVE_DISCORD ?? 📺}}
LIVE_EXTERNALThe creator is streaming on an outside site like Twitch{{LIVE_EXTERNAL ?? 🟣}}
ROLE:idThe creator has the role with that id{{ROLE:123456789 ?? ⭐ VIP room}}
GAMEUsed with : to match the game name{{GAME:Minecraft ?? ⛏️}}
PLAYERSCompares against the number of people in the party{{PLAYERS >= 5 ?? stacked}}
MAXCompares against the party's maximum size{{MAX = 5 ?? 5-stack lobby}}
RICHThe 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.

ModeWhat it doesExample
upper / capsUPPERCASE""caps:squad"" becomes SQUAD
lowerlowercase""lower:LOUD ROOM"" becomes loud room
titleTitle Case On Each Word""title:the war room"" becomes The War Room
swapSwaps the case of every letter""swap:HeLLo"" becomes hEllO
scapsSmall caps. Only lowercase letters convert, so pair it as lower+scaps.""lower+scaps:crew"" becomes ᴄʀᴇᴡ
spacesTrims the ends and collapses repeated spaces into one""spaces:too many gaps"" becomes too many gaps
acroKeeps only the first letter of each word""acro:deep rock galactic"" becomes drg
remshortDrops 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>wKeeps the first N words, so 2w keeps two""2w:ranked grind day three"" becomes ranked grind
randRandomised upper and lower case, fixed once so it never re-shuffles""rand:chaos"" becomes cHaOs
uwuuwu speak""uwu:really cool"" becomes weawwy coow
usdTurns 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:

TemplateBecomes
@@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.