> For the complete documentation index, see [llms.txt](https://nooberpro.gitbook.io/minecraft-discord-bot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nooberpro.gitbook.io/minecraft-discord-bot/installation/config.md).

# Config

<details>

<summary>Default Config File</summary>

{% code title="config.js" lineNumbers="true" fullWidth="true" %}

```javascript
// Config Explaination: https://nooberpro.gitbook.io/minecraft-discord-bot/installation/config
// "MC" is referring to Minecraft in the comments for convenience.
module.exports = {
  bot: {
    token: 'your-bot-token-here',
    // Auto changing status and activity of bot.
    presence: {
      enabled: true,
      activity: 'Playing', // Options: Playing, Listening, Watching, Competing.
      text: {
        online: 'with {playeronline}/{playermax} players', // {playeronline} and {playermax} show number of online and max players.
        offline: 'Server Offline', // Status text when the server is offline.
      },
      status: {
        // Options: online, idle, dnd, invisible.
        online: 'online', // Status when MC server is online.
        offline: 'idle', // Status when MC server is offline.
      },
    },
  },
  mcserver: {
    ip: 'demo.mcstatus.io', // IP of  MC server.
    port: 25565, // Port number of MC server. Use Query Port in Java for full Player List.
    type: 'java', // Type of MC server: "java" or "bedrock".
    name: 'Demo Server', // Name of MC server.
    version: 'Requires 1.8 - 1.20', // Version of MC server.
    icon: 'https://i.imgur.com/6Msem8Q.png', // URL of MC server icon. How? https://tinyurl.com/iconurl
    site: 'https://nooberpro.gitbook.io/', // URL of MC server or vote website. NOT REQUIRED
    // To disable site commands leave site field blank.
  },

  // Settings for bot.
  settings: {
    language: {
      // Availables languages: en(English), es(Spanish), de(German), fr(French), pt(Portuguese), ru(Russian), uk(Ukrainian)
      main: 'en', // (files in ./translation/)
      // These are optional settings for language.
      // You can set certain language for certain features. Leave then blank if you want main language to be applied.
      embeds: '', // All the embeds. Slash and Prefix Commands, Auto Changing Status.
      autoReply: '', // Replies given by the bot in Auto Reply feature.
      consoleLog: '', // All console log output.
      slashCmds: '', // All slash commands description and error replies.
    },
    embedsColors: {
      basicCmds: 'Aqua', // It is the commands like version, site, ip.
      online: 'Green', // It is the commands when it is online like status, players, motd.
      offline: 'Red', // It is the color of offline embed.
    },
    // console-logging settings.
    logging: {
      timezone: '', // Time zone of bot. Use formats like America/New_York or Europe/London. Leave blank to match the bot's location time zone.
      inviteLink: true, // Log invite link at bot's launch.
      debug: false, // Log status message and  bot activity update. (pretty much like spam)
      error: true, // Log any errors that occur.
      serverInfo: true, // Log basic info about server and check if it is online at startup.
    },
  },

  // Features settings

  // Automatically Updates the current status of a Mc server in a channel, in real time.
  autoChangeStatus: {
    enabled: false,
    updateInterval: 60, // Time period between auto changing status in seconds, e.g. 60 = 1min. Recommended: above 60.
    // These settings will be applied in slash (/) and prefix commands for status.
    isOnlineCheck: true, // Useful for servers which uses free hosting providers like Aternos. If the server's max players is 0 then status will set offline.
  },

  // Shows the Player Count of MC server in channel's name
  playerCountCH: {
    enabled: false,
    guildID: 'your-guild-id-here', // Server's ID for creating/editing channel stats.
    channelId: '', // The channel ID for editing the player count. If no ID is provided, the bot will create the channel itself. NOT REQUIRED
    // {playeronline} and {playermax} show number of online and max players.
    onlineText: '🟢 {playeronline}/{playermax} active players',
    offlineText: '🔴 Offline', // The name set when MC server is offline.
  },

  autoReply: {
    // If a message contains triggerWords, reply with appropriate server information.
    enabled: false, // Disable the entire autoReply feature.
    version: {
      enabled: true,
      triggerWords: ['version of the server?', 'version'],
    },
    ip: {
      enabled: true,
      triggerWords: ['ip of the server', 'ip'],
    },
    site: {
      enabled: true,
      triggerWords: ['website link', 'website', 'url', 'site', 'vote url', 'link'],
    },
    status: {
      enabled: true,
      triggerWords: ['is server online?', 'is server offline', 'status of the server'],
    },
  },

  commands: {
    slashCommands: true, // Enables all slash commands
    prefixCommands: {
      enabled: true, // Enables all prefix commands
      prefix: '!', // Prefix for normal command.
    },
    ip: {
      enabled: true, // Enables ip command.
      alias: ['ip-address'], // Alias for ip prefix commands.
    },
    site: {
      enabled: true, // Enables ip command.
      alias: ['vote', 'link'], // Alias for site prefix commands.
    },
    version: {
      enabled: true, // Enables ip command.
      alias: [], // Alias for version prefix commands.
    },
    players: {
      enabled: true, // Enables ip command.
      alias: ['plist'], // Alias for players prefix commands.
    },
    status: {
      enabled: true, // Enables ip command.
      alias: [], // Alias for status prefix commands.
    },
    motd: {
      enabled: true, // Enables ip command.
      alias: [], // Alias for motd prefix commands.
    },
    help: {
      enabled: true, // Enables ip command.
      alias: ['commands'], // Alias for help prefix commands.
    },
  },
}
```

{% endcode %}

</details>

## Config Explanation

Here provides an explanation of the configuration options for a Minecraft Discord bot. You can find the original configuration file [here](https://github.com/NooberPro/minecraft-discord-bot/blob/main/config.js).

### Bot Configuration (`bot`):

* `token`: The Discord bot token for authentication. Please replace 'your-bot-token-here' with the actual token. [Click here to know how to get it](broken://pages/tNy3dqdyg3nQZtFF0xeY#discord-bot-token).
* `presence`: Settings for auto-changing status and activity of the bot.
  * `enabled`: Enables or disables the auto-changing of status and activity.
  * `activity`: Specifies the type of activity. Options: **`Playing`**, **`Listening`**, **`Watching`**, **`Competing`**.
  * `text`: Configures the status text displayed based on server status.
    * `online`: Status text displayed when server is online. **Use `{playeronline}` to show number of online players and `{playermax}` to show number of max players**.
    * `offline`: Text when the server is offline.
  * `status`: Configures the Discord status. Options: **`online`**, **`idle`**, **`dnd`**, **`invisible`**.

### Minecraft Server Configuration (`mcserver`):

* `ip`: IP address of the Minecraft server.
* `port`: Port number of the Minecraft server.
* `type`: Type of Minecraft server Options: `java` or `bedrock`.
* `name`: Name of the Minecraft server. Need for displaying in embeds.
* `version`: Version of the Minecraft server. Need for displaying in embeds.
* `icon`: URL of the Minecraft server's icon.
* `site`: URL of the Minecraft server or vote website (optional). **To disable site commands leave site field blank.**

<figure><img src="/files/UYpsUNtRGRmIivWe056L" alt=""><figcaption><p><strong><code>How to get URL of the Minecraft server's icon.</code></strong></p></figcaption></figure>

### Bot Settings (`settings`):

* `language`: Configures language settings.
  * `main`: Main language for the bot.
  * Optional language settings for specific features (embeds, autoReply, consoleLog, slashCmds). You can set certain language for certain features. Leave then blank if you want main language to be applied.
    * `embeds`: All the embeds. Slash and Prefix Commands, Auto Changing Status.
    * `autoReply`: Replies given by the bot in Auto Reply feature.
    * `consoleLog`: All console log output.
    * `slashCmds`: All slash commands description and error replies.
* `embedsColors`: Specifies colors for different types of embeds.
* `logging`: Logging settings.
  * `timezone`: Time zone of the bot. It is for console-logging timestamp.
  * `inviteLink`: Gives the invite link at the bot's launch.
  * `debug`: Logs any status messages and bot activity updates.
  * `error`: Logs any errors that occur.
  * `serverInfo`: Logs basic information about the server during startup

### Features Settings:

#### Auto-Change Status (`autoChangeStatus`):

* `enabled`: Enables or disables the feature.
* `updateInterval`: Time period between auto-changing status in seconds.
* `isOnlineCheck`: Verifies if the server's maximum player count is 0 to set the status as offline. This is useful for servers which uses free hosting providers like Aternos.

#### Player Count in Channel Name (`playerCountCH`):

* `enabled`: Enables or disables the feature.
* `guildID`: Server's ID for creating/editing channel stats.
* `channelId`: Channel ID for editing the player count. If no ID is provided, the bot will create the channel itself. NOT REQUIRED
* `onlineText`: Text for online status, `{playeronline}` and `{playermax}` show number of online and max players.
* `offlineText`: Text for offline status.

{% embed url="<https://www.youtube-nocookie.com/embed/YjiQ7CajAgg?amp;start=44&end=68&si=t6_pjKWEppXKDlEb>" %}
Video by [@AthiTech](https://www.youtube.com/@AthiTech). Only 24 Seconds
{% endembed %}

<figure><img src="/files/ZYb4udOIkfaLiZJzyAby" alt=""><figcaption><p><strong><code>How to get the Server Id</code></strong><em><strong><code>(guildID)</code></strong></em><strong><code>of the discord server</code></strong></p></figcaption></figure>

#### Auto Reply (`autoReply`):

* `enabled`: Enables or disables the entire autoReply feature.
* Settings for specific triggers (version, ip, site, status).
  * `enabled`: Enables or disables the command.
  * `triggerWords`: Trigger Words for the command which is used to trigger a reply.

### Commands (`commands`):

* `slashCommands`: Enables or disables all slash commands.
* `prefixCommands`: Enables or disables normal prefix commands.
  * `prefix`: Prefix for normal commands. Eg. : `!`
* Individual command settings for `ip`, `site`, `version`, `players`, `status`, `motd`, and `help`.
  * `enabled`: Enables or disables the command.
  * `alias`: Aliases for the command.
