Skip to Content
Haven Documentation is the shared home for product guides, plugin setup, and release docs.

Setup

Requirements

  • AthenaBot with the core plugin 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

  1. Place the plugin folder at plugins/voicesupport.
  2. Start AthenaBot once so it can generate configuration/voicesupport.json5 and configuration/voicesupport_lang.json5.
  3. AthenaBot should install required plugin dependencies automatically. If it does not, stop the bot and run:
npm install @discordjs/voice opusscript ffmpeg-static
  1. Open the dashboard or config editor for voicesupport.
  2. Set the waiting room, case channel, log channel, support category, support role, and staff roles.
  3. 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.

Create a category such as Support with:

ChannelTypePurpose
Waiting RoomVoiceUsers join this to request support.
support-casesTextStaff see new case embeds and action buttons.
support-logsTextClosed, cancelled, and completed case logs.
Temporary support channelsVoiceCreated 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

  1. Start AthenaBot.
  2. Run:
/voicesupport status
  1. Join the waiting room with a test user.
  2. Confirm a support case appears in the case channel.
  3. From a staff account, click Take Over.
  4. Confirm the user is moved into the support call or temporary channel.
  5. Click Close Case or leave the temporary support channel and wait for autoCloseTimeout.
  6. Confirm the case is logged.

Music Setup

The plugin includes example files:

plugins/voicesupport/data/music/waitingroom.mp3 plugins/voicesupport/data/music/closed.mp3

Enable waitingRoomMusic.enabled if you want music while users wait. Enable closedMusic.enabled if you want a different loop when staff have closed voice support.