Skip to content

Discord Permissions

The Discord Module uses a comprehensive permission system based on Discord roles to control access to various commands and features.

The Discord Module implements a role-based permission system that integrates with Discord’s native role system. Users must have specific Discord roles to use certain commands.

Permissions are configured using Discord Role IDs in the format:

CommandName: ["ROLE_ID_1", "ROLE_ID_2"]

For commands with subcommands, permissions are nested:

Notes:
List: ["ROLE_ID_1", "ROLE_ID_2"]
Add: ["ROLE_ID_1"]
Remove: ["ROLE_ID_1"]
Clear: ["ROLE_ID_1"]
Search: ["ROLE_ID_1", "ROLE_ID_2"]
PermissionCommandDescription
zenith.discord.getinfo/getinfoGet player information
zenith.discord.alts/altsCheck alt accounts
zenith.discord.case/caseView case information
PermissionCommandDescription
zenith.discord.notes.list/notes listList player notes
zenith.discord.notes.add/notes addAdd notes from Discord
zenith.discord.notes.remove/notes removeRemove notes
zenith.discord.notes.clear/notes clearClear all notes
zenith.discord.notes.search/notes searchSearch notes
PermissionCommandDescription
zenith.discord.altlimit.check/altlimit checkCheck alt limits
zenith.discord.altlimit.set/altlimit setSet alt limits
zenith.discord.altlimit.remove/altlimit removeRemove alt limits
PermissionCommandDescription
zenith.discord.kick/kickKick players
zenith.discord.warn/warnWarn players
zenith.discord.mute/muteMute players
zenith.discord.ban/banBan players
zenith.discord.unban/unbanUnban players
zenith.discord.unmute/unmuteUnmute players
PermissionCommandDescription
zenith.discord.admin/dcbot *Bot management commands

Full access to all Discord commands and bot management

permissions:
- zenith.discord.admin: true
- zenith.discord.getinfo: true
- zenith.discord.notes.list: true
- zenith.discord.notes.add: true
- zenith.discord.notes.remove: true
- zenith.discord.notes.clear: true
- zenith.discord.notes.search: true
- zenith.discord.alts: true
- zenith.discord.altlimit.check: true
- zenith.discord.altlimit.set: true
- zenith.discord.altlimit.remove: true
- zenith.discord.kick: true
- zenith.discord.warn: true
- zenith.discord.mute: true
- zenith.discord.ban: true
- zenith.discord.unban: true
- zenith.discord.unmute: true
- zenith.discord.case: true

Capabilities:

  • ✅ Full Discord bot management
  • ✅ All moderation commands
  • ✅ All information commands
  • ✅ All administrative functions

Access to moderation and information commands

permissions:
- zenith.discord.getinfo: true
- zenith.discord.notes.list: true
- zenith.discord.notes.add: true
- zenith.discord.notes.search: true
- zenith.discord.alts: true
- zenith.discord.altlimit.check: true
- zenith.discord.kick: true
- zenith.discord.warn: true
- zenith.discord.mute: true
- zenith.discord.case: true

Capabilities:

  • ✅ View player information
  • ✅ Manage notes (limited)
  • ✅ Check alts and alt limits
  • ✅ Moderate players (kick, warn, mute)
  • ✅ View case information
  • ❌ Ban/unban players
  • ❌ Manage alt limits
  • ❌ Bot management

Read-only access to basic information

permissions:
- zenith.discord.getinfo: true
- zenith.discord.notes.list: true
- zenith.discord.alts: true
- zenith.discord.case: true

Capabilities:

  • ✅ View player information
  • ✅ List player notes
  • ✅ Check alt accounts
  • ✅ View case information
  • ❌ Modify any data
  • ❌ Moderate players
  • ❌ Bot management
modules/discord/discord-bot.yml
Permissions:
# Admin role (full access)
GetInfo: ["123456789012345678"]
Notes:
List: ["123456789012345678"]
Add: ["123456789012345678"]
Remove: ["123456789012345678"]
Clear: ["123456789012345678"]
Search: ["123456789012345678"]
Alts: ["123456789012345678"]
AltLimit:
Check: ["123456789012345678"]
Set: ["123456789012345678"]
Remove: ["123456789012345678"]
Kick: ["123456789012345678"]
Warn: ["123456789012345678"]
Mute: ["123456789012345678"]
Ban: ["123456789012345678"]
Unban: ["123456789012345678"]
Unmute: ["123456789012345678"]
Case: ["123456789012345678"]
modules/discord/discord-bot.yml
Permissions:
# Admin and Moderator roles
GetInfo: ["123456789012345678", "123456789012345679"]
Notes:
List: ["123456789012345678", "123456789012345679"]
Add: ["123456789012345678", "123456789012345679"]
Remove: ["123456789012345678"] # Admin only
Clear: ["123456789012345678"] # Admin only
Search: ["123456789012345678", "123456789012345679"]
Alts: ["123456789012345678", "123456789012345679"]
AltLimit:
Check: ["123456789012345678", "123456789012345679"]
Set: ["123456789012345678"] # Admin only
Remove: ["123456789012345678"] # Admin only
Kick: ["123456789012345678", "123456789012345679"]
Warn: ["123456789012345678", "123456789012345679"]
Mute: ["123456789012345678", "123456789012345679"]
Ban: ["123456789012345678"] # Admin only
Unban: ["123456789012345678"] # Admin only
Unmute: ["123456789012345678", "123456789012345679"]
Case: ["123456789012345678", "123456789012345679"]

The system checks if the user has any of the required Discord roles.

Users with Discord Administrator permission bypass all role checks.

If permission is denied, users receive an ephemeral error message.

All permission checks are logged for security auditing.

  1. Enable Developer Mode:

    • User Settings → Advanced → Developer Mode
  2. Get Role ID:

    • Right-click on role in member list
    • Select “Copy ID”
    • Paste into configuration
  1. Use bot command:
    /getinfo @RoleName
  2. Check bot response for role ID
  1. Use Discord API to fetch role information
  2. Extract role ID from response
  • Admin roles should be highest in Discord hierarchy
  • Moderator roles should be below admin
  • Helper roles should be lowest
  • Grant minimum required permissions
  • Regularly audit role assignments
  • Remove unused permissions
  • Use descriptive role names
  • Document role purposes
  • Regularly review role assignments

Issue: “Permission denied” errors

  • Check if role IDs are correct
  • Verify user has required roles
  • Ensure role IDs are not role names

Issue: Commands not appearing

  • Check if user has any required roles
  • Verify permission configuration
  • Check Discord role hierarchy

Issue: Inconsistent permissions

  • Check for conflicting role assignments
  • Verify permission configuration syntax
  • Check Discord role order
Terminal window
# Check bot status and permissions
/dcbot status
# Reload permission configuration
/dcbot reload

Next Steps: Learn about Discord Logging to track all bot activity!