Skip to main content

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 into config.yml.
1

Create the application

  1. Go to the Discord Developer Portal
  2. Click New Application, name it (this is the bot’s display name), and accept the terms
  3. Open the application and navigate to Bot in the left sidebar
  4. Click Reset Token and copy the token immediately - it is only shown once
Paste the token into your config:
discord:
  bot-token: "PASTE_TOKEN_HERE"
Treat the token like a password. Never commit it to version control. If it leaks, reset it immediately in the Developer Portal.
2

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.
3

Invite the bot

Build an OAuth2 URL under OAuth2 > URL Generator:
  • Scopes: bot, applications.commands
  • Bot Permissions: see the table below
The required permissions:
PermissionWhy
Send MessagesChat bridge, announcements, alerts
Embed LinksAll embed-based modules (status, stats, tickets)
Manage MessagesModeration, reaction roles, ticket cleanup
Read Message HistoryChat bridge context, ticket transcripts
Manage RolesVerification role sync, activity roles
Manage ChannelsTicket channel creation
Add ReactionsReaction-based menus and tickets
Open the generated URL in a browser and select your guild to invite the bot.
4

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:
discord:
  guild-id: "123456789012345678"
5

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:
discord:
  channels:
    chat: "123456789012345678"        # chat-bridge
    logs: "123456789012345678"        # server-logging
    events: "123456789012345678"      # join/quit/death feed
    tickets: "123456789012345678"     # ticket category/parent
    moderation: "123456789012345678"  # moderation log
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.