Bot Setup
XDiscordUltimate drives a Discord bot over JDA 5.0.0-beta.18. This page walks through creating the application, granting the privileged intents the bot requires, building the invite URL with the correct permissions, and wiring the IDs intoconfig.yml.
Create the application
- Go to the Discord Developer Portal
- Click New Application, name it (this is the bot’s display name), and accept the terms
- Open the application and navigate to Bot in the left sidebar
- Click Reset Token and copy the token immediately - it is only shown once
Treat the token like a password. Never commit it to version control. If it leaks, reset it immediately in the Developer Portal.
Enable privileged intents
Under Bot > Privileged Gateway Intents, enable all three:
- MESSAGE CONTENT INTENT - required for the chat bridge to read Discord messages
- SERVER MEMBERS INTENT - required for verification, nickname sync, and role assignment
- PRESENCE INTENT - required for activity-roles and server-status modules
Missing intents are the number-one cause of “bot is online but features do not work.” If the bot connects but does not relay chat, assign roles, or sync nicknames, revisit this step.
Invite the bot
Build an OAuth2 URL under OAuth2 > URL Generator:
Open the generated URL in a browser and select your guild to invite the bot.
- Scopes:
bot,applications.commands - Bot Permissions: see the table below
| Permission | Why |
|---|---|
| Send Messages | Chat bridge, announcements, alerts |
| Embed Links | All embed-based modules (status, stats, tickets) |
| Manage Messages | Moderation, reaction roles, ticket cleanup |
| Read Message History | Chat bridge context, ticket transcripts |
| Manage Roles | Verification role sync, activity roles |
| Manage Channels | Ticket channel creation |
| Add Reactions | Reaction-based menus and tickets |
Set the guild ID
In Discord, enable User Settings > Advanced > Developer Mode. Then right-click your server name and click Copy ID. Paste it into config:
Set channel IDs
XDiscordUltimate routes events to specific channels. Copy each channel ID (right-click > Copy ID with Developer Mode on) and fill in the ones for the modules you enable:Individual feature modules also take their own channel IDs under
features.<module>.*-channel-id. Only set the channels for modules you have enabled.Next Steps
Database
Configure SQLite, MySQL, or PostgreSQL.
Verification
Test the account-linking flow end to end.

