#Video Guide


There are several other options you can enable in the config to further customize your experience.
Below are the different sections of the config file explained in more detail.


#botConfig

botConfig - See SDLink Basic Mod Setup for details on setting the botToken

This sections customize how the bot will show in Discord.

[botConfig] #The token of the Discord Bot to use. This will be encrypted on first load. See https://sdlink.fdd-docs.com/initial-setup/ to find this botToken = "" #How often the Bot Status will update on Discord (in Seconds). Set to 0 to disable statusUpdateInterval = 30
1
2
3
4
5

#botConfig.botStatus

botStatus

This section lets you customize the status that appears in the user panel:

Variables
%players% = number of connected players
%maxplayers% = max player count set in server.properties

If CUSTOM_STATUS is used, there will be no prefix added to the status message:

#Control what the Discord Bot will display as it's status message [[botConfig.botStatus]] #Do not add Playing. A status to display on the bot. You can use %players% and %maxplayers% to show the number of players on the server status = "Enjoying Minecraft with %players%/%maxplayers% players" #The type of the status displayed on the bot. Valid entries are: PLAYING, STREAMING, WATCHING, LISTENING, CUSTOM_STATUS botStatusType = "CUSTOM_STATUS" #The URL that will be used when the "botStatusType" is set to "STREAMING", required to display as "streaming". botStatusStreamingURL = "https://twitch.tv/twitch"
1
2
3
4
5
6
7
8

#botConfig.topicUpdates

topicUpdates

This allows you to change the channel topic of the chat channel.

#Define how the bot should handle channel topic updates on the chat channel [botConfig.topicUpdates] #Should the bot update the topic of your chat channel automatically every 6 Minutes doTopicUpdates = true #How often should the bot update the channel topic (IN MINUTES)? CANNOT BE LOWER THAN 6 MINUTES! updateInterval = 6 #A topic for the Chat Relay channel. You can use %player%, %maxplayers%, %uptime% or just leave it empty. channelTopic = "Playing Minecraft with %players%/%maxplayers% people | Uptime: %uptime%"
1
2
3
4
5
6
7
8

#botConfig.invite

invite

The inviteLink and message will show up when a player in-game runs the /discord command

This will allow you to invite players on a public server to the Discord directly from in-game chat

#Configure the in-game Discord Invite command [botConfig.invite] #If this is defined, it will enable the in-game Discord command inviteLink = "" #The message to show when someone uses /discord command. You can use %inviteurl% inviteMessage = "Hey, check out our discord server here -> %inviteurl%"
1
2
3
4
5
6

#channelsAndWebooks

channelsAndWebhooks

These settings allow you to configure the channel IDs as well as webhook URLs

  • serverAvatar is a direct link to the image you wish to use for the embeds and webhook messages. An example would be: "https://i.imgur.com/5DnHbTs.png"
  • serverName will be the name of the server as it sends messages via webhooks
#Config relating to the discord channels and webhooks to use with the mod [channelsAndWebhooks] #A DIRECT link to an image to use as the avatar for server messages. Also used for embeds serverAvatar = "https://i.imgur.com/5DnHbTs.png" #The name to display for Server messages when using Webhooks serverName = "Minecraft Server"
1
2
3
4
5
6

#channelsAndWebooks.channels

channels

This section is where you set the different channel IDs
There are 3 different channels you can configure: CHAT, EVENT, CONSOLE

  • CHAT: Any in-game message will come through here. CHAT channel is required even if webhooks are enabled.
  • EVENT: Any server event will come through here: Examples include: Player join/leave, Server start/stop, Player died, etc.
  • CONSOLE: All messages with destination CONSOLE will come through here. This CANNOT be used for Console relay
#Config relating to the discord channels to use with the mod [channelsAndWebhooks.channels] #REQUIRED! The ID of the channel to post in and relay messages from. This is still needed, even in webhook mode chatChannelID = "0" #If this ID is set, event messages will be posted in this channel instead of the chat channel eventsChannelID = "0" #If this ID is set, console messages sent after the bot started will be relayed here consoleChannelID = "0"
1
2
3
4
5
6
7
8

#channelsAndWebhooks.webhooks

webhooks - See Webhook Setup on setting up a webhook for a channel

This is where you will assign a webhook URL to a channel. Webhook messages are for one way, MC -> Discord communication.

#Config relating to the discord Webhooks to use with the mod [channelsAndWebhooks.webhooks] #Prefer Webhook Messages over Standard Bot Messages enabled = false #The URL of the channel webhook to use for Chat Messages. Will be encrypted on first run chatWebhook = "" #The URL of the channel webhook to use for Server Messages. Will be encrypted on first run eventsWebhook = "" #The URL of the channel webhook to use for Console Messages. DOES NOT WORK FOR CONSOLE RELAY! Will be encrypted on first run consoleWebhook = ""
1
2
3
4
5
6
7
8
9
10

#chat

This section lets you decide what messages are sent through SDLink.
Most of these are self-explanatory, but there are a few that aren't so obvious:

useLinkedNames: Allows in-game messages to appear as though they were sent from Discord. It only works if the account is linked via link to access control config, and only works if webhooks are enabled.

formatting: Whether or not formatting will be converted between Discord and MC. Example Below:
Sending a message in bold

relayTellRaw: This will send in-game "TellRaw" commands through to Discord. Currently experimental

relayFullCommands: Whether the in-game commands will be relayed in full or just the name:

ignoreBots: This will stop any bot text from being relayed from Discord -> MC. Good to help prevent in-game chat spam

broadcastCommands: enable or disable in-game commands from being sent to Discord.

allowMentionsFromChat: This will let you mention Discord Users and channels from in-game. Requires the mod to be installed on the client See link to mentions feature

#Configure which types of messages are delivered to Minecraft/Discord [chat] #Use linked account names in Discord/Minecraft messages, instead of the default ones useLinkedNames = true #Show the discord name, username and role of the user that sent a message in Minecraft when the message is hovered showDiscordInfo = false #Convert Discord to MC, and MC to Discord Formatting formatting = true #Should console messages be sent to the Console Channel sendConsoleMessages = false #Add your own Avatar service URL here. Use {uuid} to replace the player ID in the URL customAvatarService = "https://crafatar.com/avatars/{uuid}" #The type of image to use as the player icon in messages. Valid entries are: AVATAR, HEAD, BODY, COMBO, CUSTOM playerAvatarType = "HEAD" #Should messages sent with TellRaw be sent to discord as a chat? (Experimental) relayTellRaw = true #Should the entire command executed be relayed to discord, or only the name of the command relayFullCommands = false #Should messages from bots be relayed ignoreBots = true #Should SERVER STARTING messages be shown serverStarting = true #Should SERVER STARTED messages be shown serverStarted = true #Should SERVER STOPPING messages be shown serverStopping = true #Should SERVER STOPPED messages be shown serverStopped = true #Should the chat be relayed playerMessages = true #Should discord messages be relayed to Minecraft discordMessages = true #Should Player Join messages be posted playerJoin = true #Should Player Leave messages be posted playerLeave = true #Should Advancement messages be posted. Valid values are ALWAYS, NEVER or GAMERULE advancementMessages = "ALWAYS" #Should Death Announcements be posted. Valid values are ALWAYS, NEVER or GAMERULE deathMessages = "ALWAYS" #Should Messages from the /say command be posted sendSayCommand = true #Should commands be posted to discord broadcastCommands = true #Should whitelist changes be posted to discord whitelistChanged = false #Commands that should not be broadcast to discord ignoredCommands = ["particle", "login", "execute", "sdconfigeditor"] #Allow mentioning discord roles and users from Minecraft Chat allowMentionsFromChat = false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

#messageFormatting

This section lets you customize the messages being sent between Discord and MC
Except mcPrefix, All options are being sent MC -> Discord

#Change the format in which messages are displayed [messageFormatting] #Prefix to add to Minecraft when a message is relayed from Discord. Supports MC formatting. Use %user% for the Discord Username mcPrefix = "§e[Discord]§r %user%: " #Server Starting Message serverStarting = "*Server is starting...*" #Server Started Message serverStarted = "*Server has started. Enjoy!*" #Server Stopping Message serverStopping = "*Server is stopping...*" #Server Stopped Message serverStopped = "*Server has stopped...*" #Player Joined Message. Use %player% to display the player name playerJoined = "*%player% has joined the server!*" #Player Left Message. Use %player% to display the player name playerLeft = "*%player% has left the server!*" #Advancement Messages. Available variables: %player%, %title%, %description% advancements = "*%player% has made the advancement [%title%]: %description%*" #Chat Messages. THIS DOES NOT APPLY TO EMBED OR WEBHOOK MESSAGES. Available variables: %player%, %message%, %mcname% chat = "%player%: %message%" #Death Messages. Available variables: %player%, %message% death = "%player% %message%" #Message to be sent when a player is added to the whitelist whitelistAdded = "%player% has been whitelisted!" #Message to be sent when a player is removed from the whitelist whitelistRemoved = "%player% has been removed from the whitelist!" #Command Messages. Available variables: %player%, %command% commands = "%player% **executed command**: *%command%*"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

#messageDestinations

This section allows you to pick what Discord channel some messages are sent to. You can also choose to use embeds for some messages

For more information on embeds, see Custom Embeds

#Change in which channel messages appear [messageDestinations] #Control where CHAT messages are delivered [messageDestinations.chat] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "CHAT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where START messages are delivered [messageDestinations.start] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where STOP messages are delivered [messageDestinations.stop] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where JOIN messages are delivered [messageDestinations.join] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where LEAVE messages are delivered [messageDestinations.leave] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where ADVANCEMENT messages are delivered [messageDestinations.advancements] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where DEATH messages are delivered [messageDestinations.death] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where COMMAND messages are delivered [messageDestinations.commands] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where WHITELIST change messages are delivered [messageDestinations.whitelist] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "CONSOLE" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = "" #Control where messages that match none of the above are delivered [messageDestinations.custom] #The Channel the message will be delivered to. Valid entries are CHAT, EVENT, CONSOLE, OVERRIDE channel = "EVENT" #Should the message be sent using EMBED style messages useEmbed = false #Embed Layout to use embedLayout = "default" #Override the destination with a custom channel/webhook url. Make sure to change `channel` above to OVERRIDE override = ""
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

#accessControl

This section allows you to have a "white-list" based on Discord roles.

See Access Control for a more in-depth guide on setting this up

#Manage access to your server, similar to whitelisting [accessControl] #Enable Access Control enabled = false #Allow users to verify their accounts without access control. This setting is ignored if the above setting is set to true optionalVerification = false #Does the player need to be a member of your discord to join requireDiscordMembership = false #Can players verify multiple Minecraft Accounts allowMultipleAccounts = false #Change the discord user nickname to their Minecraft name when their accounts are linked changeDiscordNickname = false #Optional: The player requires any of these roles to be able to join your server requiredRoles = [] #Optional: Players with these roles will never be allowed access to your server deniedRoles = [] #Optional: Role name or ID to assign to verified player accounts verifiedRole = [] #Should players with verified accounts, be banned from Minecraft if they get banned on discord banPlayerOnDiscordBan = false #Should members with verified accounts, be banned from discord when they are banned on Minecraft banMemberOnMinecraftBan = false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

#accessControl.verificationMessages

Allows you to customize the messages that appear when accessControl is enabled.

#Configure messages shown to players when they don't meet verification requirements [accessControl.verificationMessages] #This message is shown to users when they use the in-game verification command optionalVerificationMessage = "Your verification code is: {code}. Please DM our bot, or use the /verify command in our discord to verify your account" #The message shown to players that are not verified accountVerification = "This server requires account verification. Your verification code is: {code}. Please visit our discord server for instructions on how to verify your account." #Message to show to players that are not a member of your discord nonMember = "Sorry, you need to be a member of our discord server to join this server" #Message to show when player doesn't have one of the required roles. Use {roles} to display the names of configured roles requireRoles = "Sorry, but you require any of the following roles: {roles}" #Message to show when player has a role from the deniedRoles list roleDenied = "Sorry, but you are not allowed to access this server."
1
2
3
4
5
6
7
8
9
10
11
12

#minecraftCommands

This allows you to execute in-game commands from Discord

See Linked Commands for more details on how this works

#Execute Minecraft commands in Discord [minecraftCommands] #Allow executing Minecraft commands from Discord enabled = false #Command Prefix. For example ?weather clear prefix = "?" #List of command permissions permissions = []
1
2
3
4
5
6
7
8

#filtering

This allows you to ignore certain messages, or replace pieces of messages/usernames being relayed to discord/minecraft

see Message Filtering for more details on how this works

#Configure message/username filtering for discord messages [filtering] #Enable the filter system enabled = true #List of entries to process entries = [] #Ignore messages sent from certain threads. Enable debug logging to see what thread the message is from ignoredThreads = []
1
2
3
4
5
6
7
8