Logo
Kythia
Logo
Kythia
Login
Login
Complete Configuration Guide
Minimized (Click to Restore)

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, or mssql.
  • 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.

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.

Powered by one or more Lavalink nodes.

  • defaultPlatform: Where to search if no URL is provided (ytsearch or scsearch).
  • lavalink.hosts: Comma-separated IPs of your Lavalink servers.
  • artworkUrlStyle: Display the song cover as a small thumbnail or a large banner.
  • useAI: Whether to use the AI addon to fetch and summarize lyrics.

Economy & Market

  • dailyCooldown: Time (in seconds) between /eco daily claims (Default: 86400).
  • workCooldown: Time (in seconds) between /eco work jobs (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: '⌨️',
    // ...
  }
}

Customize the branding of every major command category by changing the banner URLs in the settings block.

  • helpBannerImage: Shown at the top of the /help menu.
  • statsBannerImage: Shown in the /stats command.
  • aboutBannerImage: Shown in the /about command.

Professional AutoMod

Detailed settings for the built-in protection system:

  • spamThreshold: Max messages allowed within the fastTimeWindow.
  • mentionThreshold: Max user mentions allowed in a single message.
  • antiAllCapsRatio: Percentage of capital letters allowed (e.g., 0.7 for 70%).
  • antiZalgoMin: Minimum Zalgo characters before a message is flagged.
For a truly "Superuser" experience, enable ownerSkipCooldown: true. This allows bot owners to test commands without waiting for timers.
Kythia Documentation Sign in →