1. Home
  2. Hosting guides
  3. Link Minecraft chat to Discord

How to link Minecraft server chat to Discord

To link Minecraft server chat to Discord, create a bot in the Discord Developer Portal, install DiscordSRV on a Paper server or a bridge mod on a modded one, and put the bot's token and your channel's ID in its config. Chat then flows both ways. Here are the steps, the settings worth changing, account linking, and what to do when the bot stays offline.

Prices checked on 10 October 2026 on the hosts' own order pages. All prices include VAT.

A Minecraft server with a RAM stick, a grass block and a map

The short answer

Make a Discord bot with the Message Content and Server Members intents, then install DiscordSRV on Paper or a mod such as Discord Integration on Fabric or NeoForge. Put the bot token in BotToken and the channel ID in the Channels line of plugins/DiscordSRV/config.yml, and restart the server. Never share the token: whoever has it controls the bot.

Compare Minecraft server hosting for a Discord community

Compare Minecraft server hosting for a Discord community: by our rule, 30 players online with 10 to 25 plugins need about 18 GB, so the best match at each host is a 24 GB plan. The best plan at each host for 30 players with 10 to 25 plugins on Paper in Poland (Warsaw), starting with the lowest price.

The best Minecraft server plan at each host for 21 to 30 players on Java in Poland (Warsaw)
ProviderMemoryCPU & storageMonthly priceOrder page
Cheapest Minecraft Hosting Crew, budget line24 GBRyzen 9 7950X with DDR5, Poland (Warsaw) 3 shared vCPU, 120 GB NVMe€19.20 /mo Same price on every termView plan CheapestMinecraftHosting Crew (opens Cheapest Minecraft Hosting)
Astroworld Hosting Premium Performance24 GB Free websiteRyzen 9 7950X with DDR5, Poland (Warsaw) 4 reserved vCPU, 120 GB Enterprise NVMe€18.78 /mo First 3 months, then €46.95/mo, €41.95 on 24 months 60% off for new customersView plan Astroworld Premium Performance (opens Astroworld Hosting)
Lodehost Premium, performance line24 GB Free websiteRyzen 9 7950X with DDR5, Poland (Warsaw) 4 reserved vCPU, 120 GB Enterprise NVMe€18.78 /mo First 3 months, then €46.95/mo, €41.95 on 24 months 60% off for new customersView plan Lodehost Premium (opens Lodehost)

On the Performance lines the large price is what a new customer pays a month at the start: for the first 3 months at both Astroworld Hosting and Lodehost, when you pay monthly. The regular monthly price comes after it, and the last price in each row is the monthly price on the host's longest term.

Compare the same billing term and location before you order.

Every price is taken from the host's own order page. How we compare

What does a Minecraft Discord bridge need?

A Minecraft Discord bridge needs 3 things before chat flows both ways:

  • A plugin or mod

    DiscordSRV on Paper, Purpur or Spigot, or a bridge mod on Fabric, Forge or NeoForge.

  • A bot of your own

    Made in the Discord Developer Portal, with its token kept secret and two intents switched on.

  • A channel ID

    The long number of the Discord channel for chat, copied with Developer Mode on.

One bot per server: DiscordSRV's makers warn against using the same token on two servers, so a second server gets a second bot.

DiscordSRV setup guide

DiscordSRV setup takes 6 steps on a Paper, Purpur or Spigot server, and most of them happen in the Discord Developer Portal:

  1. Install the plugin from Modrinth in the plugins folder and restart once. DiscordSRV writes plugins/DiscordSRV/config.yml and complains that no bot token has been set, which is expected at this point.
  2. Create an application in the Discord Developer Portal. On its Installation page, turn off User Install and set Install Link to None, and on the Bot page keep Public Bot off, so nobody else can add your bot.
  3. Switch on 2 intents on the Bot page, SERVER MEMBERS INTENT and MESSAGE CONTENT INTENT, then press Reset Token and copy the token.
  4. Invite the bot to your Discord with the bot and applications.commands scopes, and give it a role. Administrator is the short route DiscordSRV suggests; its docs also list the narrower permissions for each feature.
  5. Copy the channel ID: turn on Developer Mode under User Settings and Advanced, then right-click the chat channel and choose Copy ID.
  6. Fill in config.yml: the token between the quotes after BotToken: and the channel ID in place of the zeros in Channels: {"global": "000000000000000000"}. Then restart the server.

The bot comes online in Discord, chat from the game appears in the channel and messages in the channel appear in the game. A new token always needs a full restart, while a change to the Channels line only needs /discord reload.

DiscordSRV config.yml settings

The DiscordSRV config.yml in plugins/DiscordSRV runs to over 300 lines, but these 6 settings are the ones you are most likely to change:

DiscordSRV config.yml settings and their defaults
SettingDefaultWhat it does
BotTokenBOTTOKENThe bot's token; a change needs a restart
Channelsglobal and a row of zerosPairs of an in-game channel and a Discord channel ID
DiscordConsoleChannelIdA row of zerosA channel that shows the console and runs commands; empty turns it off
DiscordChatChannelConsoleCommandEnabledtrueLets the roles Owner and Developer run console commands from the chat channel with !c
DiscordChatChannelListCommandMessageplayerlistThe word that makes the bot list who is online
DiscordInviteLinkA placeholderYour Discord invite, shown with /discord in the game

The left half of each pair in Channels is a name DiscordSRV uses in the game, not the name of your Discord channel. Player chat without a chat plugin is global, and you can send other messages elsewhere with status for start and stop, join, leave, deaths and awards for advancements. A chat plugin brings its own names: with TownyChat the main channel is usually general, which is the classic reason chat never reaches Discord.

DiscordSRV console channel

The DiscordSRV console channel streams the server console into Discord every 5 seconds and runs every message typed there as a console command, with just 4 commands blocked by default: ?, op, deop and execute. Anyone who can post in it can stop the server, ban players or turn the whitelist off.

On a public Discord we would leave DiscordConsoleChannelId empty, which turns the feature off, and use the panel's console instead. If you do want it, make the channel private to the people who already have console access. The chat channel has a smaller version of the same thing: messages starting with !c from anyone with a role named Owner or Developer run as console commands, so check who has those roles, or set DiscordChatChannelConsoleCommandEnabled to false.

To link Minecraft and Discord accounts, a player types /discord link in the game, gets a 4-digit code and sends that code to the bot in a private message on Discord. DiscordSRV then gives them the Discord role named Linked, if your Discord has one.

Linking opens a few extra options. In linking.yml, the server can refuse players who have not linked an account, and it can require them to be a member of your Discord as well, which works like a whitelist run from Discord. Our guide to the Minecraft server whitelist covers the built-in way. With synchronization.yml, DiscordSRV can also keep Discord roles and in-game groups in step, and carry bans from Discord over to the game.

DiscordSRV commands

DiscordSRV commands all start with /discord, or /discordsrv, and these 6 are the ones you will use:

DiscordSRV commands
CommandWhat it doesFor
/discord linkGives a code to link your Minecraft and Discord accountsPlayers
/discord linkedShows which Discord account yours is linked toPlayers
/discord unlinkRemoves the linkPlayers
/discord broadcastPosts a message in DiscordStaff
/discord reloadReloads the config; some changes still need a restartStaff
/discord debugUploads a debug report for supportStaff

Use DiscordSRV's own reload, never the server's /reload or a plugin manager, which the makers say can leave the plugin broken until the next restart.

Minecraft Discord integration for Fabric, Forge and NeoForge

Minecraft Discord integration for Fabric, Forge and NeoForge needs a mod instead of DiscordSRV, because DiscordSRV 1.30.5 only runs on Bukkit-based servers such as Paper. These 3 bridges were current on Modrinth in October 2026:

  • Discord Integration: Fabric and NeoForge up to 26.2 and Forge up to 1.21.11. On Fabric it needs Fabric API.
  • Simple Discord Link: Fabric, Forge, NeoForge and Quilt up to 26.3, with a whitelist through Discord built in. It needs the CraterLib library mod.
  • Discord MC Chat: Fabric and Quilt, with its build for 26.3 still marked beta.

Each one uses a Discord bot of your own in the same way, so the Developer Portal steps above still apply. DiscordSRV's next version, called Ascension, adds Fabric and NeoForge, but its own documentation still describes it as a future version for testing.

Why is DiscordSRV not working?

DiscordSRV not working almost always shows in the console when the server starts, and these 6 causes cover nearly every case:

  1. No bot token has been set in the config. BotToken still says BOTTOKEN, or the server was not restarted after you pasted the token.
  2. The bot token is invalid. The token was copied wrongly or reset since. Press Reset Token again, paste the new one and restart.
  3. Your DiscordSRV bot is lacking required intents. Switch on SERVER MEMBERS INTENT and MESSAGE CONTENT INTENT on the Bot page.
  4. Chat reaches Discord, but not the game. Check that DiscordChatChannelDiscordToMinecraft is true and DiscordChatChannelRequireLinkedAccount false: when the second is true, only people with a linked account can talk from Discord.
  5. Nothing reaches Discord. A chat plugin uses another channel name than global, such as general with TownyChat, or the channel ID is wrong.
  6. It broke after a reload. Restart the server; the server's /reload and plugin managers leave DiscordSRV in a bad state.

Two servers on one token cause trouble as well: DiscordSRV warns that Discord treats it as API abuse, which can get the server's IP address banned from Discord. And if the token ever leaks, press Reset Token at once. The old one stops working, so put the new one in config.yml and restart.

Minecraft server status Discord bot

A Minecraft server status Discord bot tells your community whether the server is up and who is online, and some hosts build 1 into the panel, so you need no plugin for it. Astroworld Hosting's Discord bot, for example, has 6 slash commands: /status, /players, /address, /stats for the last seven days, /restart for members with Manage Server or a role you pick, and /link to connect it once with a code from the panel. It joins with no permissions, so it cannot read your channels.

A status bot and a chat bridge do different jobs and work fine side by side. Without one from your host, DiscordSRV covers the basics: typing playerlist in the chat channel lists who is online, and the status channel gets the server start and stop messages.

Before you link your server to Discord

Before you link your server to Discord, check 3 things:

  1. Your server type

    DiscordSRV needs Paper, Purpur, Spigot or Folia. A Fabric, Forge or NeoForge server needs a bridge mod instead.

  2. Your Discord permissions

    You need Manage Server in the Discord to invite a bot, and Manage Roles to give it a role.

  3. Where the token goes

    Only in the config file on the server, never in a channel, a screenshot or a help request.

Questions about Minecraft and Discord

Is DiscordSRV free?

Yes. DiscordSRV is open source under the GPL 3.0 licence and free to download from Modrinth. You only need a Discord account to create the bot.

Does DiscordSRV work on Fabric or NeoForge?

Not the current release, 1.30.5, which needs Paper, Purpur, Spigot or Folia. On a modded server, use a bridge mod such as Discord Integration or Simple Discord Link, which work with a bot of your own in the same way.

Can I use one DiscordSRV bot on two servers?

No. DiscordSRV's makers say not to use the same token on more than one server. Give each server its own bot, and if you want linked accounts shared between them, point both at the same MySQL database.

How do I show who is online in Discord?

Type playerlist in the channel that DiscordSRV links to the game. The bot answers with the online players and removes the answer after 10 seconds by default.

Does DiscordSRV work with BungeeCord or Velocity?

Not on the proxy itself. Install DiscordSRV on every Paper server behind the proxy, each with its own bot token.

What happens if someone gets my bot token?

They control the bot: they can read what it reads, post as it and use every permission of its role. Press Reset Token in the Developer Portal straight away, then put the new token in config.yml and restart.

Still unsure? Use the Minecraft server finder