-
Notifications
You must be signed in to change notification settings - Fork 7
Configuration
JustEvil edited this page Aug 19, 2026
·
1 revision
- Every knob Stelle exposes lives in a config file under
/src/config/. - This page documents every field. For how config files are loaded, see Installation β Configuration.
Note
local.config.ts (git-ignored) overrides default.config.ts. Build your config with the createConfig(...) helper so you get full typing.
| Field | Type | Default | Usage |
|---|---|---|---|
defaultLocale |
LocaleString |
en-US |
Locale used when a guild hasn't set one. |
defaultPrefix |
string |
stelle |
Fallback prefix for text commands. |
prefixes |
string[] |
["st!"] |
Extra global prefixes. |
defaultSearchSource |
SearchSources |
Spotify |
Default search engine for play. |
defaultVolume |
number |
60 |
Volume new players start at. |
lyricsLines |
number |
10 |
Lines shown in the live lyrics view. |
disconnectTime |
number (ms) |
ms("30s") |
Grace period before leaving an empty channel. |
inviteLink |
string |
β | Your bot's invite URL. |
githubLink |
string |
β | Repository link shown in some embeds. |
developerIds |
string[] |
[] |
User ids allowed to run developer commands. |
guildIds |
string[] |
[] |
Guilds that developer/guild-only commands are pushed to. |
presenceInterval |
number (ms) |
ms("25s") |
How often the bot rotates its presence. |
nodes |
NodeOptions[] |
β | Lavalink node list (wrap them in Sessions.resolve(...)). |
| Field | Type | Default | Usage |
|---|---|---|---|
success |
number (hex) |
0x8d86a8 |
Primary/embed color. |
extra |
number (hex) |
0xece8f1 |
Secondary/accent color. |
| Field | Type | Usage |
|---|---|---|
guildsId |
string |
Channel id where guild join/leave logs go. |
errorsId |
string |
Channel id for error logs. |
| Field | Type | Default | Usage |
|---|---|---|---|
voicePermissions |
PermissionStrings |
ViewChannel, Connect, Speak
|
Permissions required in a voice channel. |
stagePermissions |
PermissionStrings |
MuteMembers |
Permissions required in a stage channel. |
Node session resuming: lets players survive a bot/node restart.
| Field | Type | Default | Usage |
|---|---|---|---|
enabled |
boolean |
true |
Enable node session resuming. |
resumeTime |
number (s) |
60 |
How long the node keeps the session alive after a disconnect. |
resumePlayers |
boolean |
true |
Restore players on reconnect. |
| Field | Type | Default | Usage |
|---|---|---|---|
size |
number |
5 |
Max messages kept in the in-memory cache. |
expire |
number (ms) |
ms("5mins") |
Message cache TTL. |
On-disk cache for the rendered "now playing" banners.
| Field | Type | Default | Usage |
|---|---|---|---|
enabled |
boolean |
true |
Cache rendered banners on disk. |
ttl |
number (ms) |
ms("24h") |
How long a cached banner stays valid (refreshed on hit). |
maxEntries |
number |
100 |
Max cached banners (LRU eviction). |
Auto-delete the now-playing message on certain events.
| Field | Type | Default | Usage |
|---|---|---|---|
onTrackEnd |
boolean |
false |
Delete when a track ends. |
onTrackSkip |
boolean |
false |
Delete when a track is skipped. |
onPlayerStop |
boolean |
false |
Delete when the player stops. |
24/7 mode defaults (see Features β 24/7).
| Field | Type | Default | Usage |
|---|---|---|---|
is247 |
boolean |
false |
Global default for 24/7 (per-guild toggled with /247). |
autoPause |
boolean |
true |
Pause playback when the channel is empty instead of leaving. |
autoReconnect |
boolean |
true |
Rejoin automatically if the bot is forced out of voice while 24/7 is on. |
| Field | Type | Default | Usage |
|---|---|---|---|
userLimit |
number |
25 |
Max playlists per user. |
trackLimit |
number |
100 |
Max tracks per playlist. |
Music-guessing game (see Features β Music Quiz).
| Field | Type | Default | Usage |
|---|---|---|---|
sources |
string[] |
β | Candidate pools: playlist/track URLs or plain search queries. One is picked at random per game, then resolved, de-duplicated and shuffled. |
rounds |
number |
10 |
Tracks (rounds) per game. |
snippet |
number (ms) |
ms("30s") |
How long each snippet plays before the round advances. |
Made with
Getting started
Using Stelle
Advanced
Reference