Skip to main content
Faculty Bot requires specific Discord channels and roles to function properly. This guide explains how to configure them.

Getting Discord IDs

You must enable Developer Mode in Discord to copy channel and role IDs.

Enable Developer Mode

  1. Open Discord Settings
  2. Go to App Settings β†’ Advanced
  3. Enable Developer Mode

Copy Channel IDs

  1. Right-click on any channel
  2. Click Copy Channel ID
  3. Paste the ID into your config.json

Copy Role IDs

  1. Go to Server Settings β†’ Roles
  2. Right-click on a role
  3. Click Copy Role ID
  4. Paste the ID into your config.json

Channel Configuration

channels
object
required
Discord channels used by the bot.
"channels": {
  "xp": "763684496767451164",
  "rules": "765975503965650965",
  "news": "497729011062013974",
  "logs": "497822868592132116",
  "ads": "1111387940359262299",
  "createChannel": "πŸ”Š New VoiceChannel",
  "mealplan": "899606239804268545"
}

Channel Parameters

channels.xp
string
required
Channel where level-up notifications are posted.When a user levels up from chatting, the bot will post a congratulations message with a custom banner image in this channel.
channels.rules
string
required
Channel containing the server rules.Used by the rupdate command to update rule messages. Staff can edit rules using bot commands.
channels.news
string
required
Announcement channel for important server news.
This should be an announcement channel that can be followed by other servers.
channels.logs
string
required
Channel for bot activity logs.The bot logs moderation actions, errors, and important events here.
channels.ads
string
required
Channel where users can post advertisements.Controlled by the adstimeout setting in general configuration.
channels.createChannel
string
required
Name of the voice channel that creates temporary channels.When a user joins this voice channel, the bot automatically creates a new temporary voice channel for them and moves them into it. The channel is deleted when empty.
"createChannel": "πŸ”Š New VoiceChannel"
This is a channel name, not an ID. The bot searches for a voice channel with this exact name.
channels.mealplan
string
required
Channel where meal plans are automatically posted.The bot posts weekly meal plans from the configured cafeteria URL to this channel.
This should ideally be an announcement channel so students can follow it in their own servers.

Role Configuration

roles
object
required
Discord roles used by the bot for permissions and notifications.
"roles": {
  "staffrole": "497787064906153984",
  "semestermodrole": "628973623121805325",
  "verified": "710860408147148820",
  "mealplannotify": "899619452897882142"
}

Role Parameters

roles.staffrole
string
required
Role ID for server staff members.Users with this role can:
  • Use administrative commands
  • Send messages as the bot
  • Update server rules
  • Force post meal plans
  • Access moderation commands
Only give this role to trusted administrators!
roles.semestermodrole
string
required
Role ID for semester moderators.Users with this role have limited moderation permissions specific to their semester or program.
roles.verified
string
required
Role given to verified students.Students receive this role after completing email verification with their university email address.
The bot checks that emails end with the correct domain (e.g., @stud.hs-kempten.de).
roles.mealplannotify
string
required
Role that gets pinged when meal plans are posted.Users can self-assign this role by clicking the button on meal plan posts. They’ll be notified whenever a new weekly meal plan is posted.
@mealplannotify [Meal Plan Image]
[Get Notified on new plans! Button]

Example Configuration

{
  "channels": {
    "xp": "763684496767451164",
    "rules": "765975503965650965",
    "news": "497729011062013974",
    "logs": "497822868592132116",
    "ads": "1111387940359262299",
    "createChannel": "πŸ”Š New VoiceChannel",
    "mealplan": "899606239804268545"
  },
  "roles": {
    "staffrole": "497787064906153984",
    "semestermodrole": "628973623121805325",
    "verified": "710860408147148820",
    "mealplannotify": "899619452897882142"
  }
}
All channel and role IDs are strings in the JSON file, even though they represent numbers.

Build docs developers (and LLMs) love