Join to Create
Join a hub voice channel and get your own personal voice channel automatically, managed with buttons and deleted the moment everyone leaves it.
Setup
$jointocreate
Also $jtc, $voicemaster, $vm, /jointocreate manage.
Two steps on the setup panel: Set Category creates the hub voice channel
("➕ Join to Create") under a category you pick, then Send Interface Message posts
the persistent button-message members use to manage their own channels (disabled until a category's
set).
Already have a category set and just want to (re)post the interface message somewhere without
opening the panel? $jtc postinterface (also $jtc sendinterface,
/jointocreate postinterface) posts it directly in the channel you run it in -
it replaces the old interface message if one was already posted elsewhere.
How it works
Joining the hub creates a fresh voice channel for that member and moves them into it automatically. The channel is deleted as soon as it's empty again. Every button on the interface message only works for the channel's owner (whoever created it) - and only while they're actually connected to that voice channel, not just recorded as its owner.
| Button | Does |
|---|---|
| 🔒 / 🔓 Lock / Unlock | Denies/allows @everyone from connecting |
| 👻 / 👁️ Hide / Reveal | Denies/allows @everyone from seeing the channel |
| ✅ Permit | Lets a specific member bypass a lock or hide |
| 🔢 Set Limit | User limit, 0-99 (0 = unlimited) |
| ✏️ Rename | Renames the channel |
| 🗑️ Delete | Deletes it immediately instead of waiting for it to empty |
| 📋 Info | Shows owner and member count - the only button anyone in the channel can use, not just the owner |
If your last channel had anything customized (locked, hidden, a custom name, a non-default user limit, or anyone permitted), the next channel you create prompts you to restore last configuration - one click reapplies everything and tells you exactly what changed. Skipped entirely if your last channel was just left at the defaults, and it never blocks a bot restart while it's waiting on you. An ownership transfer (Claim, below) carries the same snapshot to both the outgoing and incoming owner.
$vc / /vc - the same controls as text commands
Everything the buttons above do is also available as $vc <action> or
/vc <action> - handy since the button panel is a normal message in the channel's own
text chat, so it can scroll out of view once people start typing.
$vc lock
$vc unlock
$vc ghost (alias: hide)
$vc reveal (aliases: unhide, unghost)
$vc permit <@member>
$vc unpermit <@member> (alias: revoke)
$vc disallow <@member> (aliases: deny, block)
$vc allow <@member> (aliases: undisallow, unblock)
$vc kick <@member>
$vc limit <0-99>
$vc rename <name> (alias: name)
$vc delete
$vc info
$vc claim
Kick (disconnects a member from your channel), Unpermit (revokes a member's lock/hide bypass - the reverse of Permit), Disallow (blocks a specific member from joining your channel at all), and Allow (reverses Disallow) don't have buttons on the interface message, only the text/slash form. Same ownership rule as everything else: only works while you're actually connected to the channel you own.
Claim lets anyone else in the channel ask its current owner to hand it over - it posts a confirm prompt pinging the owner, and only they can accept or decline it.