Complete Configuration Guide
An exhaustive, 1000% accurate guide to every setting in Kythia's .env and kythia.config.js.
Kythia's power lies in its extreme configurability. This guide provides a detailed breakdown of every single configuration value available in the framework.
Environment Variables (.env)
The .env file handles sensitive credentials and core infrastructure settings (Database, Redis, etc.). Never share this file.
Quick Start (Minimum Required)
| Variable | Description | Source |
|---|---|---|
LICENSE_KEY |
Your unique Kythia license key. | Kythia Discord |
DISCORD_BOT_TOKEN |
The secret token for your bot. | Discord Dev Portal |
DISCORD_BOT_CLIENT_ID |
The Application ID of your bot. | Discord Dev Portal |
Database Configuration
By default, Kythia uses SQLite, so no setup is required. To use a "real" database:
DB_DRIVER:mysql,postgres,mariadb, ormssql.DB_HOST: The IP or hostname of your database server.DB_PORT: Default ports: 3306 (MySQL/Maria) or 5432 (Postgres).DB_NAME: The name of the database Kythia should use.DB_USER/DB_PASSWORD: Your database credentials.
Performance & Monitoring
REDIS_URLS: Comma-separated list of Redis instances (e.g.,redis://localhost:6379).SENTRY_DSN: Optional error tracking URL from Sentry.io.WEBHOOK_ERROR_LOGS: Discord webhook URL to receive critical error notifications.
Main Configuration (kythia.config.js)
This file controls the logic, aesthetics, and feature toggles of the bot.
1. General & Legal
legal: {
acceptTOS: true, // Must be true
dataCollection: true, // Must be true for telemetry
},
owner: {
ids: '1158654757183959091', // Comma-separated Discord IDs
names: 'kenndeclouv', // Display names for the /about command
}
2. Discord Bot Core
| Setting | Description | Default |
|---|---|---|
name |
Internal name used in logs and standard embeds. | Kythia |
color |
Hex color code for all bot messages. | #FFFFFF |
prefixes |
Array of prefixes for legacy text commands. | ['!', 'k!'] |
status |
Initial presence (online, idle, dnd). |
online |
activity |
The text shown in the bot's status. | join support... |
timezone |
The default timezone for levels and logging. | Asia/Jakarta |
3. Addon Configuration (Features)
Each addon has an active toggle. Setting it to false removes the addon's commands and events from memory.
AI Addon (Gemini)
Kythia uses Google's Gemini models for its intelligent chat.
model: The specific Gemini version (e.g.,gemini-2.0-flash).geminiApiKeys: Injected from.env. Can handle multiple keys for load balancing.personaPrompt: The base "personality" instructions for the AI.getMessageHistoryLength: How many previous messages the AI remembers in a conversation.
Music Addon (Lavalink)
Powered by one or more Lavalink nodes.
defaultPlatform: Where to search if no URL is provided (ytsearchorscsearch).lavalink.hosts: Comma-separated IPs of your Lavalink servers.artworkUrlStyle: Display the song cover as a smallthumbnailor a largebanner.useAI: Whether to use the AI addon to fetch and summarize lyrics.
Economy & Market
dailyCooldown: Time (in seconds) between/eco dailyclaims (Default:86400).workCooldown: Time (in seconds) between/eco workjobs (Default:28800).robCooldown: How often users can attempt to steal from others.
Web Dashboard (API)
url: The public-facing URL of your dashboard (Must match Discord OAuth2 redirects).port: The internal port the API server listens on (Default:3000).secret: Used for signing session cookies.
Visuals & Emojis
Kythia allows you to customize the icons used in interactive menus.
Emoji Customization
You can replace standard emojis with custom guild emojis using the <:name:id> format.
emojis: {
music: {
play: '▶️',
skip: '⏭️',
// ...
},
tempvoice: {
rename: '⌨️',
// ...
}
}
Banner Images
Customize the branding of every major command category by changing the banner URLs in the settings block.
helpBannerImage: Shown at the top of the/helpmenu.statsBannerImage: Shown in the/statscommand.aboutBannerImage: Shown in the/aboutcommand.
Professional AutoMod
Detailed settings for the built-in protection system:
spamThreshold: Max messages allowed within thefastTimeWindow.mentionThreshold: Max user mentions allowed in a single message.antiAllCapsRatio: Percentage of capital letters allowed (e.g.,0.7for 70%).antiZalgoMin: Minimum Zalgo characters before a message is flagged.
ownerSkipCooldown: true. This allows bot owners to test commands without waiting for timers.