Configuration Reference
Complete guide to every XDiscordUltimate setting inconfig.yml. XDiscordUltimate uses YAML for configuration.
Configuration location:
plugins/XDiscordUltimate/config.ymlThe file is generated automatically on first startup with sensible defaults. Edit it, then run /xdiscord reload — no restart required for most settings.Quick Start
Generate the config
Start your server once. XDiscordUltimate drops a default
config.yml into plugins/XDiscordUltimate/.Set the minimum required values
At minimum, fill in
discord.bot-token and discord.guild-id. Nothing works without them.Enable the modules you want
Each feature lives under
features.<module> and toggles with enabled: true|false.Enable debug mode (
general.debug: true) to get verbose, per-module log output while you’re tuning things. Turn it back off for production.Top-level structure
Configuration Categories
Admin IDs
Admin IDs
General
General
| Key | Default | Description |
|---|---|---|
debug | false | Verbose per-module logging. |
default-language | en_US | Fallback locale for players without a preference. |
language | en_US | Console/default language. |
check-updates | true | Check for new releases on startup. |
en_US, ar_SA, cs_CZ, de_DE, es_ES, fr_FR, hi_IN, id_ID, it_IT, ja_JP, ko_KR, nl_NL, pl_PL, pt_BR, ru_RU, sv_SE, th_TH, tr_TR, vi_VN, zh_CN.Discord (required)
Discord (required)
| Key | Description |
|---|---|
bot-token | Bot token from the Discord Developer Portal. Required. |
guild-id | Target server ID. Required. Slash commands register to this guild. |
guild-name | Display name used in messages/embeds. |
invite-url | Returned by the /discord command. |
activity.* | Bot presence (type: PLAYING / WATCHING / LISTENING / COMPETING; status: ONLINE / IDLE / DO_NOT_DISTURB). |
commands.use-slash-commands | Register Discord slash commands. |
commands.legacy-prefix / text-command-prefix | Prefix for legacy text commands. |
channels.* | Default channel IDs reused across modules. |
activity.text: %players% (online), %max% (max slots).Database
Database
- Tab Title
- Tab Title
- Tab Title
Zero-config. Just set
type: sqlite and optionally the file name. Great for single servers.The schema is created automatically on first run. A
schema_versions table tracks migrations — future upgrades apply automatically.Features (modules)
Features (modules)
Every module is a block under
See the individual feature pages for each module’s full option set.
features toggled by enabled. The 19 modules:| Key | Module |
|---|---|
chat-bridge | Two-way chat sync |
server-logging | Join/leave/death/command/advancement logs |
verification | Discord↔Minecraft account linking |
server-control | Run allowed commands from Discord |
admin-alerts | TPS/RAM health alerts |
tickets | Support ticket system |
moderation | Ban sync, chat filter, reports |
bot-console | Text-prefixed console in a channel |
announcements | Cross-platform broadcasts |
player-stats | Statistics tracking |
server-status | Auto-updating status embed |
booster-perks | Discord booster rewards |
welcome-dm | Welcome DM on join/verify |
leaderboard | Top-players embed |
activity-roles | Playtime-based Discord roles |
voice-channels | Player-count + dynamic voice channels |
economy-bridge | Vault economy link (Discord transfers) |
server-ip | /ip server address module |
whitelist | Discord-driven whitelist requests |
Verification
Verification
| Key | Default | Description |
|---|---|---|
one-time-only | false | If true, a code can only be used once across the network. |
kick-after-minutes | 0 | Kick unverified players after N minutes (0 = off). |
whitelist-mode | false | Require verification to play. |
verified-role | Verified | Discord role granted on link. |
verified-group | verified | LuckPerms group granted on link. |
sync-nickname | true | Set the member’s Discord nickname to their IGN. |
code-length | 6 | Characters in each verification code. |
code-expiry-minutes | 5 | How long a code stays valid. |
verify-cooldown-seconds | 30 | Cooldown after a successful verification. |
failed-attempt-cooldown-seconds | 5 | Cooldown after each failed attempt. |
max-verify-attempts | 5 | Failed attempts before lockout. |
verify-lockout-seconds | 300 | Lockout duration once max-verify-attempts is hit. |
java.security.SecureRandom.Chat Bridge
Chat Bridge
use-webhook: true (and auto-create-webhook: true) to post Minecraft chat as the player with their real skin avatar via the skin-provider (crafthead is most reliable and works with offline-mode names).Tickets
Tickets
Moderation
Moderation
regex: entries are compiled as regular expressions. They’re powerful — always test a pattern before relying on it, and escape carefully.Server Status
Server Status
message-id blank; the module creates the embed on first run and stores the ID so subsequent updates edit the same message in place.Leaderboard
Leaderboard
Activity Roles
Activity Roles
role-id to the Discord role it should grant at that playtime threshold.Voice Channels
Voice Channels
Economy Bridge
Economy Bridge
Booster Perks
Booster Perks
Welcome DM
Welcome DM
Title|Value|inline triplets.Announcements
Announcements
Server Control & Bot Console
Server Control & Bot Console
server-control and bot-console run real server commands from Discord. Gate them behind dedicated roles and only allowlist commands you’re comfortable exposing.Admin Alerts
Admin Alerts
tps-threshold or RAM usage exceeds ram-threshold%. Recipients are the adminIDs list (DMs) and/or the alert-channel.Server IP & Whitelist
Server IP & Whitelist
Messages
Messages
plugins/XDiscordUltimate/lang/messages_<locale>.yml (20 locales). Use /language [locale] in-game to switch a player’s preference.Advanced
Advanced
thread-pool-size for large servers. The token-bucket DiscordRateLimiter honors commands-per-minute to stay under Discord API limits.Discord Console (mirror)
Discord Console (mirror)
bot-console command runner.Reloading
Most options apply live with/xdiscord reload. A full server restart is only required when changing:
discord.bot-tokenordiscord.guild-iddatabase.type(or connection details)- Anything loaded once at startup by Libby/runtime dependencies
Next Steps
Features
Dive into each module’s dedicated page for behavior and examples.
Commands
Every command, alias, and permission in one place.
Database
Database backend setup for SQLite, MySQL, and PostgreSQL.
Verification
The account-linking system most other modules depend on.

