Skip to main content
Doubt uses two configuration files and environment variables. Both configuration files are .gitignored for security.

Environment Variables (.env)

Copy .env.example to .env and fill in the values.

Required Variables

Production Variables

Optional Variables

Production Toggle Behavior

The PRODUCTION flag controls which set of credentials the bot uses:
The guild ID for command registration:
Environment variables are strings. Token, client ID, and guild ID selection compare against "true", but MongoDB URI selection uses process.env.PRODUCTION truthiness. With PRODUCTION=false as a string, config.handler.mongodb.uri may still select MONGODB_URI. Verify the generated src/config.js values before running a bot. See the Engineering Guide for details.

Runtime Configuration (src/config.js)

Copy src/example.config.js to src/config.js and customize.

Structure

Key Configuration Notes

moderation.developers

Array of Discord user ID strings. Users listed here can use developer-only commands (/eval, /deploy, /badge, etc.). If this array is empty or missing, all developer commands are blocked with a configuration error message. See Security for eval sandbox rules and developer command gates.

moderation.staffRoles

Array of Discord role ID strings. Members with any of these roles can use staff-only commands.

handler.commands.prefix

Set to true to enable prefix commands (?help, ?ping, etc.). Disabled by default.

handler.mongodb.toggle

Set to false to skip the database connection entirely. The bot will start but all database-dependent features (economy, AFK, tickets, etc.) will fail.

variables.channels.botGuilds / botUsers

The bot renames these channels every 30 minutes to display current guild and user counts. If these IDs are empty or invalid, the bot will log non-fatal errors periodically. Set to valid voice channel IDs in your support guild, or leave empty and ignore the errors.

Per-Guild Prefix

Each guild can set a custom prefix with ?prefix set <new_prefix>. Custom prefixes are stored in the guildschemas MongoDB collection. If no custom prefix is set, the default from handler.prefix is used.