
Your players talk in Minecraft chat. Your community lives on Discord. Messages in one place never reach the other. Players miss announcements. Admins miss reports. You need a bridge.
DiscordSRV connects your Minecraft server to your Discord server. Chat messages, join/leave events, death messages, and achievement notifications all flow between the two in real time. You can even run console commands from Discord.
Step 1: Create a Discord Bot
- Go to discord.com/developers/applications
- Click "New Application" and name it (e.g. "MC Server Bot")
- Go to the "Bot" tab on the left
- Click "Add Bot"
- Under "Privileged Gateway Intents", enable Server Members Intent and Message Content Intent
- Copy the bot token. You need this later. Do not share it with anyone
Step 2: Invite the Bot to Your Discord Server
- Go to the "OAuth2" tab, then "URL Generator"
- Under Scopes, check bot
- Under Bot Permissions, check: Send Messages, Read Messages/View Channels, Manage Messages, Embed Links, Attach Files, Read Message History, Manage Webhooks
- Copy the generated URL and open it in your browser
- Select your Discord server and authorize
The bot appears in your member list as offline. It goes online once DiscordSRV starts on the Minecraft server.
Step 3: Install DiscordSRV on Your Minecraft Server
Download DiscordSRV from: github.com/DiscordSRV/DiscordSRV/releases
Place the .jar file in your server's plugins/ folder.
Restart the server. DiscordSRV generates its config files on first launch.
Step 4: Configure the Bot Token
Open plugins/DiscordSRV/config.yml.
Find the BotToken line near the top:
BotToken: "PASTE_YOUR_BOT_TOKEN_HERE"
Paste the bot token you copied from the Discord Developer Portal.
Step 5: Link a Discord Channel
You need the Channel ID of the Discord channel where you want chat messages to appear.
- In Discord, go to Settings > Advanced > enable "Developer Mode"
- Right-click the channel you want to use
- Click "Copy Channel ID"
In the same config.yml, find the Channels section:
Channels:
global: "PASTE_CHANNEL_ID_HERE"
Replace the placeholder with your channel ID.
Step 6: Restart and Test
Restart your Minecraft server. The Discord bot should come online. Join the Minecraft server and type a chat message. It should appear in the linked Discord channel. Type a message in the Discord channel and it should appear in Minecraft chat.
Configuring What Gets Sent
DiscordSRV lets you control exactly what events flow between Minecraft and Discord.
Open plugins/DiscordSRV/messages.yml to customize message formats:
MinecraftChatToDiscordMessageFormat: "**%displayname%**: %message%"
DiscordToMinecraftChatMessageFormat: "[Discord] %name% > %message%"
Open plugins/DiscordSRV/config.yml for event toggles:
| Setting | What It Does | Default | |---|---|---| | MinecraftPlayerJoinMessageEnabled | Send "Player joined" to Discord | true | | MinecraftPlayerLeaveMessageEnabled | Send "Player left" to Discord | true | | MinecraftPlayerDeathMessageEnabled | Send death messages to Discord | true | | MinecraftPlayerAchievementMessageEnabled | Send achievement messages | true |
Console Access from Discord
DiscordSRV lets you run server console commands directly from a Discord channel. This is useful for remote management when you are away from the panel.
In config.yml, find:
DiscordConsoleChannelId: ""
Create a private Discord channel (only visible to admins), copy its Channel ID, and paste it here:
DiscordConsoleChannelId: "YOUR_CONSOLE_CHANNEL_ID"
After restarting, any message sent in that channel is executed as a server console command. Type list and the server responds with the player list. Type ban PlayerName and it bans them.
Warning: Restrict this channel to trusted admins only. Anyone with access to this channel has full console control over your server.
Account Linking
DiscordSRV supports linking Minecraft accounts to Discord accounts. Players type /discord link in Minecraft, receive a code, and send it to the bot in Discord DMs. After linking:
- Their Discord nickname updates to match their Minecraft name
- They get a "Linked" role automatically
- You can require linking before granting in-game permissions
Enable this in config.yml:
MinecraftDiscordAccountLinkedConsoleCommands: ["lp user %minecraftname% parent add linked"]
This example gives linked players a "linked" permission group through LuckPerms.
Common Issues
Bot is online but no messages sync:
Check the channel ID. It must be the numeric ID, not the channel name. Channel IDs are 18-19 digit numbers.
Messages appear in Discord but not in Minecraft:
Enable Message Content Intent in the Discord Developer Portal. Without this, the bot cannot read message content from Discord.
Bot crashes with "Invalid Token":
The token was copied incorrectly. Go back to the Developer Portal, regenerate the token, and paste it again. Make sure there are no extra spaces or line breaks.
Space-Node servers support DiscordSRV out of the box. The support team will help you configure the bot if needed. Get started here.
