Setup
Requirements
- AthenaBot with the
coreplugin enabled - One voice channel for the support waiting room
- One text channel for support case embeds
- One optional text channel for support logs
- One support category if using temporary support voice channels
- A Discord role to ping when a new case is created
- One or more staff roles allowed to manage cases
- Bot permissions:
- View Channels
- Send Messages
- Embed Links
- Move Members
- Connect
- Speak if using waiting room or closed music
- Manage Channels if using temporary support voice channels
Installation
- Place the plugin folder at
plugins/voicesupport. - Start AthenaBot once so it can generate
configuration/voicesupport.json5andconfiguration/voicesupport_lang.json5. - AthenaBot should install required plugin dependencies automatically. If it does not, stop the bot and run:
npm install @discordjs/voice opusscript ffmpeg-static- Open the dashboard or config editor for
voicesupport. - Set the waiting room, case channel, log channel, support category, support role, and staff roles.
- Restart AthenaBot after changing dependency state, channel IDs, role IDs, or voice handling mode.
If dashboard-backed config storage is enabled, use the dashboard for normal
setup. Editing configuration/voicesupport.json5 may not change the live
config until the dashboard data is updated.
Recommended Discord Layout
Create a category such as Support with:
| Channel | Type | Purpose |
|---|---|---|
| Waiting Room | Voice | Users join this to request support. |
| support-cases | Text | Staff see new case embeds and action buttons. |
| support-logs | Text | Closed, cancelled, and completed case logs. |
| Temporary support channels | Voice | Created by the plugin when voiceHandlingMode is create_temp_channel. |
Minimum Working Config
{
config: {
enabled: true,
waitingRoomChannelId: "YOUR_WAITING_ROOM_VOICE_CHANNEL_ID",
caseChannelId: "YOUR_CASE_TEXT_CHANNEL_ID",
logChannelId: "YOUR_LOG_TEXT_CHANNEL_ID",
supportCategoryId: "YOUR_SUPPORT_CATEGORY_ID",
supportRoleId: "YOUR_SUPPORT_ROLE_ID",
staffRoles: [
"STAFF_ROLE_ID"
],
voiceHandlingMode: "create_temp_channel",
tempChannelNameFormat: "Support - {caseId}",
combinedCases: {
enabled: true,
autoAddLatecomers: true,
tempChannelNameFormat: "Support - {caseId} ({userCount} users)"
},
noSupporterTimeout: 300,
autoCloseTimeout: 60,
embedColor: "#5865F2",
permissions: {
voicesupport_command: "staff",
voicesupport_buttons: "everyone",
voicesupport_event: "everyone"
}
}
}First Test
- Start AthenaBot.
- Run:
/voicesupport status- Join the waiting room with a test user.
- Confirm a support case appears in the case channel.
- From a staff account, click Take Over.
- Confirm the user is moved into the support call or temporary channel.
- Click Close Case or leave the temporary support channel and wait for
autoCloseTimeout. - Confirm the case is logged.
Music Setup
The plugin includes example files:
plugins/voicesupport/data/music/waitingroom.mp3
plugins/voicesupport/data/music/closed.mp3Enable waitingRoomMusic.enabled if you want music while users wait. Enable
closedMusic.enabled if you want a different loop when staff have closed voice
support.