Automatically give members roles when they join a voice channel, and take those roles away when they leave. Each voice channel can be mapped to its own set of roles — up to 10 mappings per server.
Voice Roles lets you tie a Discord voice channel to a set of server roles. When a member joins that voice channel, Mokito grants them the configured roles. When they leave, Mokito removes those roles. If a member moves directly from one mapped channel to another, Mokito removes the old channel's roles and grants the new channel's roles in the same transition.
Every mapping is one voice channel paired with one to ten roles. You can have up to 10 mappings in a single server. Each voice channel can only appear in one mapping — you cannot map the same channel twice.
Voice Roles is a Mokito Premium feature. There is no free tier. In a server without an active Premium subscription, the page is locked and the bot does not assign or remove any voice roles. Existing mappings are preserved and resume the moment the server re-subscribes.
Only the server owner and managers (and Mokito admins) can open the Voice Roles page or create and delete mappings. Everyone else receives an access-denied response. See Dashboard Roles for the full role precedence and how to assign or revoke each role.
Voice Roles is Premium-only. There is no free tier and no freemium split — every part of the feature (creating mappings, the automatic role assignment, and the mappings list) requires Mokito Premium. In a server without Premium:
If a server's Premium subscription ends or is cancelled, existing voice role mappings are not deleted. They stay in the list with a Paused — Premium lapsed status badge. The bot simply stops acting on them — no roles are added or removed while Premium is inactive. The moment the server re-subscribes, every active mapping resumes automatically. You do not need to recreate anything.
The Voice Roles page lives in the guild dashboard under the Utility sidebar category. It has three parts: a hero at the top, a count and create button bar, and the mappings list (or an empty state when there are no mappings yet).
The hero summarises the feature in one line — "Automatically give members roles when they join a voice channel, and take those roles away when they leave." — and shows the server name. When the server has Premium, a small counter badge shows how many mappings are in use out of the 10-mapping limit (for example, 3/10). When the server does not have Premium, the badge shows a Premium tag instead.
The counter badge in the hero shows your current mapping count against the server maximum:
| State | What the badge shows |
|---|---|
| Server has Premium | A gold N/10 counter (e.g. 3/10), where N is the number of active mappings. |
| Server does not have Premium | A Premium tag, indicating the feature is locked. |
When the server does not have Premium, the page displays a locked callout in place of the mappings list. The callout explains that Voice Roles is a Premium feature, that existing mappings are preserved, and that the bot will not assign or remove roles until the server re-subscribes. It includes an Upgrade to Premium button that takes you to the Premium page.
Next to the limit text (Max 10 voice role mappings per server) is the create button. Its appearance depends on the server's Premium state and mapping count:
| State | What the button shows | What it does |
|---|---|---|
| Server has Premium and is under the 10-mapping limit | A green New Voice Role Mapping button. | Opens the create modal. |
| Server has Premium but is at the 10-mapping limit | A disabled Limit reached label with a lock icon. | Nothing — you must delete an existing mapping before you can create another. |
| Server does not have Premium | A disabled Premium only label with a lock icon. | Nothing — the feature is locked. |
When the server has at least one voice role mapping, the page shows a table of every mapping in the server, newest first. Each row represents one voice channel and its configured roles.
| Column | What it shows |
|---|---|
| Voice channel | The name of the Discord voice channel this mapping applies to, with a microphone icon. If the channel was deleted from Discord but the mapping still exists, the raw channel ID is shown instead of the name. |
| Roles | The Discord roles that are added on join and removed on leave, shown as role-name chips. If a configured role was deleted from Discord, its raw role ID is shown instead of the name. |
| Status | A badge showing whether the mapping is active, paused, or paused because Premium lapsed (see below). |
| Actions | A red Delete button (see below). |
The Status column shows one of three badges:
| Badge | Colour | What it means |
|---|---|---|
| Active | Green | The mapping is live. The bot will grant the roles when a member joins this voice channel and remove them when they leave. |
| Paused | Rose | The mapping has been set to inactive. The bot will not act on it. |
| Paused — Premium lapsed | Amber | The mapping exists but the server's Premium subscription has ended. The bot is not assigning or removing roles. It will resume automatically when the server re-subscribes. |
Each row has a red Delete button. Clicking it opens a confirmation modal that warns you this will stop the bot from adding or removing roles for that voice channel. Confirming deletes the mapping. This cannot be undone — you would need to recreate it from scratch if you change your mind.
When the server has no voice role mappings yet, the page shows a centered empty-state panel with a microphone icon and a prompt to click New Voice Role Mapping to create one.
Clicking New Voice Role Mapping opens a modal with two fields: a voice channel dropdown and a role selector. The modal explains its purpose in the subtitle: "Choose a voice channel and the roles to assign automatically."
A dropdown listing every voice channel and stage channel in the server, ordered by position. Click the dropdown, then click a channel to select it. The selected channel's name appears in the dropdown trigger. Only real voice channels appear — text channels, announcement channels, forum channels, and categories are not listed.
Each voice channel can only be used in one mapping. If you select a channel that already has a mapping, the form rejects the submission with the message "A voice role mapping already exists for this channel."
A tag-style selector. Type a role name into the search field and matching roles appear in a suggestion list below. Click a suggestion (or press Enter when the first suggestion is highlighted) to add it as a removable chip. Click the × on a chip to remove it. You can add between 1 and 10 roles per mapping. Duplicate roles are filtered out automatically.
The helper text below the selector reads: "Pick 1–10 roles. The bot will add these roles when a member joins the channel and remove them when they leave."
Click Save mapping to submit the form. On success, the modal closes and you are returned to the page with a success message: "Voice role mapping created. Members joining this voice channel will receive the selected roles." The new mapping appears at the top of the list.
If the submission fails validation, the modal stays open and an error message appears under the relevant field. Common failures:
| Error | Cause |
|---|---|
| "Select a voice channel from this server." | The channel ID submitted does not match a known voice channel in this server. |
| "A voice role mapping already exists for this channel." | You selected a voice channel that already has a mapping. Delete the existing mapping first. |
| "Select between 1 and 10 roles." | You submitted with zero roles or more than 10 roles. |
| "Select at least one valid role from this server." | None of the submitted role IDs match a known role in this server. |
| "This server already has the maximum number of voice role mappings." | The server already has 10 active mappings. Delete one before creating another. |
| "Voice Roles are a Mokito Premium feature." | The server's Premium subscription ended between the page load and the form submission. |
Voice Roles runs automatically in the background. There is no slash command for this feature — everything is configured in the web panel, and the bot handles the rest.
When a member joins a voice channel that has an active mapping, Mokito adds every role in that mapping to the member. If the server's Premium subscription is not active, nothing happens — the mapping is checked against Premium before any role is touched.
When a member leaves a voice channel that has an active mapping, Mokito removes every role in that mapping from the member. The same Premium check applies — if Premium has lapsed, the roles are not removed.
If a member moves directly from one mapped voice channel to another (by dragging them in Discord, or by them switching channels), Mokito treats it as a leave from the old channel followed by a join to the new channel. The old channel's roles are removed and the new channel's roles are added in the same transition. If only one of the two channels has a mapping, only that side's roles are touched.
Voice state updates from bot accounts are ignored. Voice Roles only acts on human members.
Muting, unmuting, deafening, or undeafening does not trigger role changes. Mokito only acts when a member's channel changes — joining one, leaving one, or moving between two. A member who mutes themselves while in a mapped channel keeps their roles throughout.
| Limit | Value | Notes |
|---|---|---|
| Mappings per server | 10 | Active mappings count toward the limit. Paused mappings (Premium lapsed) still count. |
| Roles per mapping | 1–10 | Each mapping must have at least one role and no more than ten. Duplicates are filtered out automatically. |
| Channels per mapping | 1 | Each mapping is one voice channel. A channel can only appear in one mapping. |
| Channel types | Voice + Stage | Only Discord voice channels and stage channels can be mapped. Text, announcement, and forum channels are not listed. |
| Role hierarchy | Bot must outrank the role | Mokito can only assign and remove roles below its own top role. Roles above the bot's top role will silently fail to apply. |
| Premium required | Yes | The entire feature is Premium-only. No free tier. Mappings are preserved when Premium lapses but are paused until re-subscription. |
| Slash command | None | Voice Roles is web-panel-only. There is no Discord command for creating or managing mappings. |
| Who can configure | Owner + Manager | Only the server owner, managers, and Mokito admins can open the page, create, or delete mappings. |
| Bot members | Skipped | Voice state updates from bot accounts are ignored. Only human members receive or lose roles. |
| Mute / deafen | Ignored | Only channel changes (join, leave, move) trigger role changes. Mute and deafen toggles do not. |
| Delete does not strip roles | — | Deleting a mapping stops future role changes but does not remove roles from members who currently hold them. Remove those manually if needed. |
| Deleted channel / role | ID shown | If a mapped channel or role is deleted from Discord, the list shows the raw ID instead of the name. The mapping still works for the parts that still exist. |
| Late join detection | Best-effort | If the bot restarts while a member is already in a mapped channel, the member will not receive the roles retroactively — the roles are only applied on the next channel transition. |