Features
Chat sync
Send the Minecraft chat to a Discord channel and messages from the channel back into the game.
Chat sync connects a Discord channel to the chat of your Minecraft server. The MC-Sync plugin or mod runs on the server for this. You don't need to open a port.
Set up
- Get the file for your server from the download page.
- Put it into the
pluginsfolder (Spigot, Paper, Folia) or themodsfolder (Fabric, Quilt, Forge, NeoForge) and start the server. This creates the config. - Connect the server to a Discord channel:
- In the dashboard, open "Servers" and then your server. If it's missing, add it with "+ Add server".
- Open the "Connection & chat" tab.
- Pick the chat channel.
- Accept the terms and click "Connect and create token".
- Run
/server add name: Survival channel: #minecraft. If the server is already in the list, use/server connect server: Survival channel: #minecraft. - Click "Accept and connect". The bot shows the token once, only to you.
- Put the token into the config and restart the server.
# Spigot, Paper, Folia: plugins/mc-sync/config.yml
api:
token: "your-token"# Fabric, Quilt, Forge, NeoForge: config/mc-sync.properties
api.token=your-token- Write a message in the game. It shows up in the Discord channel after a few seconds.
If it doesn't, see Problems.
Settings
In the dashboard the switches are under "Connection & chat". In Discord you set them with /server chat.
| Dashboard | /server chat | Effect |
|---|---|---|
| Active | active | Turns chat sync off. Channel and token stay. |
| Chat | chat-messages | Chat messages in both directions |
| Join/leave | join-leave-messages | Posts when someone joins or leaves the server |
| Deaths | death-messages | Death messages from the game |
| Advancements | advancements | Advancements, from Minecraft 1.12 |
language | Language of the messages the bot writes itself | |
channel | Moves the chat to another channel |
/server chat server: Survival death-messages: FalseOnly in the dashboard:
- Chat format: messages as the player with head and name, as an embed or as a plain line. Your own templates for join, leave, death and advancement, and a word filter.
- Token: an expiry date and a grace period when you renew it, during which the old token still works.
- Chat history: the latest messages of the channel, loaded straight from Discord.
Start, stop, outages and the weekly report are set under Notices.
Commands in the game
| Command | Effect |
|---|---|
/mcsync status | Shows whether the connection is up, which commands the server accepts and whether there's an update |
/mcsync reload | Reads the config again. The token and some settings still need a restart. |
/mcsync toggle | Hides the Discord chat for you only |
/mcsync link <code> | Links your Minecraft account to Discord, see Link accounts |
status and reload need the mcsync.admin permission. On Fabric, Quilt, Forge and NeoForge, whoever may use /kick may use them. Anyone can use toggle and link.
Disconnect
- Dashboard: "Connection & chat" → "Disconnect".
- Discord:
/server disconnect server: Survival.
The token stops working. The server stays in the list with its address and public page. /server remove deletes the server too.
Problems
The plugin doesn't check in
- Check that the token is in the config in full, without spaces.
- Restart the server after adding it.
/mcsync reloadisn't enough for the token. - The server must reach
api.mc-sync.euover HTTPS. Some hosts block outgoing connections; ask yours.
Messages from Discord don't show up in the game
- Check that the "Chat" switch is on.
- The bot must be allowed to see the channel ("View Channel").
- If a player used
/mcsync toggle, only they don't see the Discord chat.
Messages show up as an embed instead of with the player's head
To post as the player, the bot needs "Manage Webhooks" in the channel. Without it, it posts an embed. Grant it in the channel's Discord settings under "Permissions".
The channel isn't in the list
A channel can only belong to one server. Channels that are already used for something else aren't offered.
/mcsync doesn't exist
On Forge before Minecraft 1.19, the mod doesn't have the command. You can see whether the connection is up in the dashboard under "Connection & chat".
Background: how chat gets through without an open port
The Minecraft server opens an outgoing HTTPS connection to the bot itself and keeps it open. Messages from Discord come in over that connection. If it drops, the server asks every second until it's back.
While Discord can't be reached, chat, joins and deaths wait on the server's disk: in plugins/mc-sync/queue/ or config/mc-sync-queue/. They survive a restart too. How long they wait is set in the config under queue.*.