Skip to content

Discord Module Setup

Link your Minecraft server to Discord and vice versa using the StreamlineDiscord module for StreamlineCore.

Download StreamlineDiscord

Prerequisites

Enable Developer Mode in Discord so you can right-click to copy IDs:

Go to Settings > Advanced > Enable Developer Mode

Developer Mode

Installation

  1. Stop your server.
  2. Place the StreamlineDiscord module jar into your modules folder.
  3. Start your server (generates config files), then stop it again.
  4. Edit the configuration as described below.
  5. Start your server.

Creating the Discord Bot

  1. Go to the Discord Developer Portal and click New Application.

    Create Application

  2. Choose a name and click Create.

    Create Bot

  3. Under Installation, set Install Link to None.

    No Install Link

  4. Go to the Bot tab. Keep Public Bot unchecked so only you can invite the bot.

    Not Public

  5. Under Privileged Gateway Intents, enable all three intents. Under Bot Permissions, enable Administrator. Without these, the bot cannot read or send messages.

    Privileged Gateway Intents

  6. Copy the Application ID from the General Information page.

    Copy Application Id

  7. Invite the bot by visiting this URL (replace YOUR_APP_ID with the ID you copied):

    https://discord.com/oauth2/authorize?scope=bot+applications.commands&permissions=8&client_id=YOUR_APP_ID
  8. Select your server and authorize the bot.

Plugin Configuration

Open the config file at streamline-discord/config.yml inside your module resources folder.

  1. Copy the bot Token from the Discord Developer Portal and paste it into the token field.
  2. Set the bot prefix, activity type, and activity value.
  3. Copy the Server ID of your Discord server (right-click the server name > Copy Server ID) and paste it into main-guild-id.
  4. Adjust any other settings you want.
  5. Restart your server.

Default config.yml

yml
bot:
  # Set to true to fully disable the bot (useful on backend servers).
  full-disable: false
  # Your bot token. NEVER share this with anyone.
  token: "<put token here -- DO NOT GIVE THIS TO ANYONE>"
  # Prefix for text-based bot commands.
  prefix: ">>"
  # Bot activity shown in the Discord sidebar.
  activity:
    # Options: CUSTOM_STATUS, COMPETING, LISTENING, DEFAULT, STREAMING, WATCHING
    type: "STREAMING"
    # Text after the activity type (e.g., "Streaming play.drak.gg")
    value: "play.drak.gg"
  avatar-url: "https://raw.githubusercontent.com/Streamline-Essentials/StreamlineWiki/main/s.png"
  # Enable Discord slash commands.
  slash-commands: true
  # The ID of your main Discord server.
  main-guild-id: 0

Channel Routes

A Route is a one-way connection between two endpoints — think of it like a one-directional tunnel between Minecraft and Discord.

Setting a Route

In the Discord channel you want to link, run:

/channelset type:<type> identifier:<identifier>

Removing a Route

In the Discord channel you want to unlink, run:

/channelremove identifier:<identifier>

Endpoint Types

Built-in (StreamlineDiscord)

TypeIdentifierDescription
GLOBAL_NATIVEAnything (ignored)Routes to/from global Minecraft chat
SPECIFIC_NATIVEServer nameRoutes to/from a specific server's chat
PERMISSIONPermission node (e.g., myserver.staff)Routes to players with a specific permission
DISCORD_TEXTChannel IDRoutes to a specific Discord text channel

With Streamline Groups Module

TypeIdentifierDescription
GUILDGuild UUIDRoutes to all members of a guild
PARTYParty UUIDRoutes to all members of a party

With Streamline Messaging Module

TypeIdentifierDescription
SPECIFIC_HANDLEDChat channel identifierRoutes to all members of a chat channel