Server Settings
Let server admins configure your bot per-guild from a public settings page.
Server settings let you define options that Discord server admins can configure for their server — without editing code or contacting you.
How It Works
- You define a settings schema in the bot editor (up to 15 fields)
- Each public bot gets a settings page at
/bot/{id}/settings/{guildId} - Server admins with Manage Server or Administrator permission can open the page and configure values
- Your bot reads those values at runtime via
{setting:key}in visual commands orctx.getSetting(key)in code - Server owners & admins can access this page directly through the help command when interacting with the bot
Field Types
| Type | What the admin sees |
|---|---|
string | Text input |
number | Numeric input |
boolean | Toggle switch |
select | Dropdown with options you define |
channel | Dropdown of the server's channels |
role | Dropdown of the server's roles |
Each field has a key, display label, optional description, and optional default value.
Defining Settings
Add settings from the bot editor's settings schema panel. Each setting needs:
- Key — unique identifier used in code and templates (e.g.
log-channel) - Label — what the admin sees (e.g. "Log Channel")
- Type — one of the types above
- Description — optional helper text shown below the input
- Default value — used when a server hasn't configured the setting yet
- Options — for
selecttype, the list of choices
Using Settings
In visual commands
Use {setting:key} as a template variable. Channel and role IDs are automatically formatted as mentions.
Welcome to {server}! Check out {setting:rules-channel} for the rules.In code commands
const logChannel = await ctx.getSetting("log-channel");
await ctx.setSetting("welcome-message", "Hello!");Settings Page Customization
- Accent color — set a custom accent color for the settings page header and buttons
- Branding — Pro plan bots can hide the BotDen branding on the settings page
Module Settings
Installed modules can add their own settings fields automatically. These module-created settings can't be deleted manually — they're removed when the module is uninstalled.