# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nooberpro.gitbook.io/minecraft-discord-bot/installation/config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
