Skip to main content
The config.json file contains all the bot’s operational settings. It must be placed in the root directory of your project.

File Structure

config.json
{
  "prefix": "..",
  "channels": { ... },
  "colors": { ... },
  "roles": { ... },
  "general": { ... },
  "mealplan": { ... },
  "rssSettings": { ... },
  "podcastSettings": { ... }
}

Basic Settings

prefix
string
required
The command prefix for the bot.
"prefix": ".."
This should match the PREFIX environment variable.

Colors Configuration

colors
object
Hex color codes used in embeds throughout the bot.
"colors": {
  "blue": "#4200ff",
  "lightblue": "#FFFFF",
  "green": "#28823d",
  "red": "#cf0a0a"
}
colors.blue
string
Primary blue color for informational embeds.
colors.lightblue
string
Light blue accent color.
colors.green
string
Success color for positive actions.
colors.red
string
Error color for warnings and errors.

General Settings

general
object
required
General bot behavior settings.
"general": {
  "adstimeout": 2147483647,
  "charsForLevel": 25,
  "xpScalingFactor": 0.5
}
general.adstimeout
number
Timeout for advertisements in milliseconds. Default: 2147483647 (max int32).
general.charsForLevel
number
required
Number of characters needed to gain base XP. Default: 25.
Users gain XP by chatting. Every 25 characters equals 1 base XP point.
general.xpScalingFactor
number
required
XP scaling factor for level progression. Default: 0.5.Formula: xp = base_xp / (1 + scaleFactor * ln(level))Lower values make leveling faster, higher values make it slower.

Complete Example

config.json
{
  "prefix": "..",
  "channels": {
    "xp": "763684496767451164",
    "rules": "765975503965650965",
    "news": "497729011062013974",
    "logs": "497822868592132116",
    "ads": "1111387940359262299",
    "createChannel": "🔊 New VoiceChannel",
    "mealplan": "899606239804268545"
  },
  "colors": {
    "blue": "#4200ff",
    "lightblue": "#FFFFF",
    "green": "#28823d",
    "red": "#cf0a0a"
  },
  "roles": {
    "staffrole": "497787064906153984",
    "semestermodrole": "628973623121805325",
    "verified": "710860408147148820",
    "mealplannotify": "899619452897882142"
  },
  "general": {
    "adstimeout": 2147483647,
    "charsForLevel": 25,
    "xpScalingFactor": 0.5
  },
  "mealplan": {
    "postMealplan": true,
    "url": "http://www.max-manager.de/daten-extern/augsburg/pdf/wochenplaene/hs-kempten/aktuell.pdf",
    "check": 30,
    "postOnDay": "Monday",
    "postAtHour": "09:00:00",
    "imgsettings": {
      "density": 400,
      "quality": 100,
      "flatten": false,
      "width": 768,
      "height": 512
    }
  },
  "rssSettings": {
    "postRss": false,
    "rssFeedData": {
      "1087740850395693096": "https://example.com/feed.xml"
    },
    "rssCheckIntervalHours": 1,
    "rssCheckAfterTimeHours": 8
  },
  "podcastSettings": {
    "postPodcast": false,
    "podcastCheckInterval": 1,
    "podcastUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCjbhFF_P9Dn774YShrFdSLA",
    "podcastChannel": "899606239804268545"
  }
}
See the dedicated pages for Channels & Roles, Meal Plan, and RSS Feeds for detailed configuration of those sections.

Build docs developers (and LLMs) love