Only show guides for your app
Link your Minecraft server's chat to a Discord channel both ways with DiscordSRV — the bot token, the channel IDs, the intents, and the account linking that ties players together.
DiscordSRV connects your Minecraft server to a Discord server: in-game chat appears in a Discord channel, messages typed in that channel appear in-game, and — with a little setup — you can pipe your server console and sync roles too. It's the standard way to keep a community talking whether they're logged in or on their phone. The catch that trips people up is that DiscordSRV runs its own Discord bot, so it needs a token and the right intents, just like any bot.
| At a glance | |
|---|---|
| You need | A plugin-capable server (Purpur, PaperSpigot, Spigot family), DiscordSRV from the Plugins page, and a Discord server you manage |
| Also | A bot token from the Discord Developer Portal (see below) |
| Plan | Any |
Here's the reassuring part: you do not host a second thing. DiscordSRV is the bot — it connects out to Discord from inside your Minecraft server process. There's no separate app server to run, no port to open. You give DiscordSRV a token, it logs in, and the bridge is live while your Minecraft server is up.
That also means the token you create is used by DiscordSRV, not by any of the bots in the Discord Bots guides. If you've made a bot before, the token steps will feel familiar.
DiscordSRV needs its own Discord application:
bot scope and permission to read and send messages in the channel you'll bridge.💡 Tip: The token is a password. Paste it only into DiscordSRV's config on the server, never into chat or a public repo. If it leaks, reset it in the portal — the old one dies instantly. More on why in Your first Discord bot.
DiscordSRV's config is /plugins/DiscordSRV/config.yml, edited in the File Manager. The two things you must set:
| Setting | What to put |
|---|---|
BotToken |
The token you copied from the portal |
Channels |
A mapping of an in-game channel name to a Discord channel ID — the classic entry is global: "your-channel-id" |
To get a channel ID, enable Developer Mode in your Discord user settings, then right-click the channel and Copy ID. Paste that ID (in quotes) as the global channel.
After editing, run /discordsrv reload in the console (or restart). Watch the console: DiscordSRV logs whether the bot connected and found the channel.
🎯 Good to know: DiscordSRV can do a lot more than two-way chat — a console channel that streams your server log to Discord, role synchronization between a Discord role and an in-game permission group, join/leave announcements, and avatars in messages. Each is a config section. Turn them on one at a time so you can tell what changed.
Chat relay works without any player setup. But linking — tying a player's Minecraft account to their Discord account — is what unlocks the good stuff: role sync, showing a player's Discord name, per-player features. Players run /discord link in-game, get a code, and confirm it with the bot in Discord. It's optional but worth encouraging if you use roles.
Type a message in-game — it should appear in the bridged Discord channel within a second. Type a message in that Discord channel — it should appear in the game chat. If one direction works and the other doesn't, that's your clue (see below).
Bot has not connected — the token is wrong or was reset. Copy a fresh one into BotToken and /discordsrv reload.