Plugin Idea: Voice Channel Text Binds — auto-create linked text channels
Auto-create text channels linked to voice channels — when a user joins a voice channel, a temporary text channel is created for that voice session. Members in the voice see and can type in it. The text channel auto-deletes when the voice channel empties.
Why
Many gaming and community servers use this pattern — it keeps voice-related chat organized and separate from main chat. Popularized by community servers and the "Text in Voice" Discord experiment.
Spec
How It Works:
- Server admin designates a category or specific voice channels for "text binding"
- When a user joins a bound voice channel, a text channel is auto-created:
#vc-name or #🔊-vc-name
- Only members in the voice channel can see/type in it (or optionally, everyone can read)
- When the last person leaves VC, the text channel is deleted (with optional delay)
- Bot posts a "Voice chat started — #{channel}" message as the first message
Commands (Admin):
/voice-text bind <voice-channel> [text-channel-name] — Bind a voice channel
/voice-text unbind <voice-channel> — Remove binding
/voice-text list — List bindings
/voice-text config category <category> — Category to create text channels in
/voice-text config delete-delay <minutes> — Delay before deleting empty channels (default: 1)
/voice-text config visibility [all|voice-only] — Who can see the text channel
/voice-text toggle — Enable/disable plugin
Features:
- Auto-Permissions — Text channel permissions auto-set so only voice members can view
- Naming Templates — Configurable:
voice-{name}, vc-{name}, {name}-chat
- Persistent Channels — Option to keep text channel after VC empties (for continued discussion)
- Max Channels — Configurable hard cap (default: 10 active at a time)
- Channel History — Option to save transcript when deleted
- Integration with TempVoice — Auto-bind to temp voice channels created by TempVoice plugin
Model:
// Bindings
{
guildId: String,
voiceChannelId: String,
textChannelName: String, // template
createdAt: Date
}
// Active sessions
{
guildId: String,
voiceChannelId: String,
textChannelId: String,
createdAt: Date,
lastActiveAt: Date
}
Acceptance Criteria
Plugin Idea: Voice Channel Text Binds — auto-create linked text channels
Auto-create text channels linked to voice channels — when a user joins a voice channel, a temporary text channel is created for that voice session. Members in the voice see and can type in it. The text channel auto-deletes when the voice channel empties.
Why
Many gaming and community servers use this pattern — it keeps voice-related chat organized and separate from main chat. Popularized by community servers and the "Text in Voice" Discord experiment.
Spec
How It Works:
#vc-nameor#🔊-vc-nameCommands (Admin):
/voice-text bind <voice-channel> [text-channel-name]— Bind a voice channel/voice-text unbind <voice-channel>— Remove binding/voice-text list— List bindings/voice-text config category <category>— Category to create text channels in/voice-text config delete-delay <minutes>— Delay before deleting empty channels (default: 1)/voice-text config visibility [all|voice-only]— Who can see the text channel/voice-text toggle— Enable/disable pluginFeatures:
voice-{name},vc-{name},{name}-chatModel:
Acceptance Criteria