DiscordSRV: Link Minecraft Chat to Discord
DiscordSRV is the free, open-source Spigot/Paper plugin that bridges your Minecraft server and a Discord server. It relays chat both ways, mirrors your console into a private channel, links player accounts, and can sync in-game ranks to Discord roles. This guide covers what DiscordSRV does, the exact setup (including the Discord intents people forget), and how to fix the "bot is offline / chat is not relaying" problems that account for almost every support question.
What DiscordSRV does
Once configured, DiscordSRV gives you:
- Two-way chat relay - in-game chat appears in a Discord channel and Discord messages appear in-game.
- Console channel - your server console streamed to a private Discord channel, with optional command execution.
- Account linking - players run
/discord linkin-game to connect their Minecraft and Discord accounts. - Role / group sync - tie Discord roles to in-game groups (requires LuckPerms): a VIP in-game becomes a VIP on Discord automatically.
- Event messages - join, leave, death and advancement announcements posted to Discord.
DiscordSRV runs on Spigot, Paper and forks. Plain vanilla and (natively) Fabric are not supported - you need a Bukkit-based server.
1. Create the Discord bot
- Open the Discord Developer Portal and click New Application.
- Go to the Bot tab, click Reset Token, and copy the token (keep it secret - it is the bot's password).
- Enable the intents on the same Bot tab: turn on Message Content Intent and Server Members Intent. This is the single most-missed step - without Message Content Intent, chat will not relay.
2. Invite the bot to your server
Go to OAuth2 → URL Generator, tick the bot scope, then choose permissions (Administrator is simplest; for least privilege, grant Read/Send Messages, Manage Roles, and Read Message History on the relevant channels). Open the generated URL and add the bot to your Discord server.
3. Configure the plugin
- Upload
DiscordSRV.jarto/plugins/and restart once to generate the config. - Open
plugins/DiscordSRV/config.ymland paste your token:BotToken: "YOUR_BOT_TOKEN_HERE" - Get your Discord channel ID: in Discord, enable Settings → Advanced → Developer Mode, then right-click the channel and Copy Channel ID.
- Map your in-game chat to that channel:
Channels: {"global": "123456789012345678"}
- Restart (or run
/discordsrv reload). The bot should come online and a message should appear in the channel.
4. Optional: console channel, linking and role sync
In config.yml set DiscordConsoleChannelId to a private channel to stream your console. Enable account linking so players can verify with /discord link. For rank sync, install LuckPerms and configure GroupRoleSynchronization to pair each in-game group with a Discord role.
5. Optional: proximity voice chat
DiscordSRV can move nearby players into a shared Discord voice channel via the companion Simple Voice Chat mod - see our Simple Voice Chat server setup guide for the install path and the UDP voice port it needs.
Common DiscordSRV problems
Bot shows offline / won't start: the token is wrong or the intents are off. Re-copy the token and confirm Message Content + Server Members intents are enabled in the Developer Portal.
Chat is not relaying: the channel ID is wrong, the bot lacks permission in that channel, or Message Content Intent is disabled. Check all three.
Discord messages reach Minecraft but not the other way (or vice versa): a permission gap - make sure the bot can both read and send in the mapped channel.
Role sync does nothing: LuckPerms is missing, or the group/role names in GroupRoleSynchronization do not match, or the bot's role sits below the role it is trying to assign in Discord's role hierarchy.
FAQ
Is DiscordSRV free?
Yes - DiscordSRV is free and open source. Download it from its official SpigotMC/GitHub page, not third-party mirrors.
Does DiscordSRV work on Fabric or vanilla?
No. It needs a Bukkit-based server (Spigot or Paper). Vanilla and Fabric are not supported natively.
Why is the bot online but no messages relay?
Almost always the Message Content Intent is off, the channel ID is wrong, or the bot lacks channel permissions.
Can DiscordSRV sync Discord roles with in-game ranks?
Yes, with LuckPerms installed - map each in-game group to a Discord role under GroupRoleSynchronization.
Tip: keep the bot token out of public configs and screenshots. If it leaks, reset it in the Developer Portal immediately.
Related guides
Want managed Minecraft Java server hosting? Supercraft runs Minecraft dedicated servers with daily backups, instant setup, and 5 region options. Plans from $5.99/mo.