# Configuration

This page will go over all of the configuration options for the Pterodactyl cog.  
All of the commands below can be accessed through `[p]pterodactyl config`.

## `api`

This option determines which [PlayerDB](https://playerdb.co/) endpoint the cog will use to retrieve player avatars.  
This is only used for webhook avatars in the chat integration system. You should probably leave this as default.

Default value: `minecraft`

## `chat`

### `channel`

This option determines what channel chat messages will be sent to. If this is unset, the chat integration won't work.
**Make sure the bot has permissions to speak in this channel!**

Default value: `None`

### `command`

This option determines what command will be sent to the server whenever a message is sent in the configured chat channel. The JSON format Minecraft uses for this is very janky sometimes, if you need help with changing the command, you can join my [Discord server](https://discord.gg/eMUMe77Yb8).

Available placeholders:

- `.$C` - replaced with hex color of the author's top colored role
- `.$D` - replaced with the author's discriminator (will usually be 0, you shouldn't use this)
- `.$I` - replaced with the author's ID
- `.$M` - replaced with message content
- `.$N` - replaced with author's display name (or guild nickname, if set)
- `.$U` - replaced with the author's username (NOT display name, you should usually use `.$N`)

Default value:

```json
tellraw @a ["",{"text":".$N ","color":".$C"},{"text":" (DISCORD): ","color":"blue"},{"text":".$M","color":"white"}]
```

## `consolechannel`

/// admonition | Only give access to the console channel to people you trust!
    type: danger
If a user account has access to the console channel, they can execute ***any*** command on your server, including some power actions.
They will also be able to see potentially sensitive information, such as player IPs, if [IP Masking](configuration.md#ip) is disabled.
///

This option determines what channel console logs will be sent to. If this is unset, the console integration won't work.  
**Make sure the bot has permissions to speak in this channel!**  
Server status changes, Discord --> Minecraft chat messages, and command executions will all be logged here.

/// admonition
    type: info
Please note that, in order to avoid Discord ratelimits, logs will not be posted when the server status is one of the following:

- `starting`
- `stopping`

This is to prevent the console channel from flooding and getting backed up by Discord's message ratelimits.
///

Default value: `None`

## `ip`

This option determines whether or not IP's will be redacted when posted in chat or to the console channel.

Default value: `True`

## `messages`

### `join`

This option determines what the description in embeds will be when a user joins the server. Has no effect if embeds aren't used.

Default value: `Welcome to the server! 👋`

### `leave`

This option determines what the description in embeds will be when a user leaves the server. Has no effect if embeds aren't used.

Default value: `Goodbye! 👋`

### `shutdown`

This option determines what the bot will send in the chat channel when the server stops.

Default value: `Server stopped!`

### `startup`

This option determines what the bot will send in the chat channel when the server is started.

Default value: `Server started!`

## `regex`

If you're not running on recent versions of Paper, which this cog was developed against, or you're otherwise changing for format of chat messages, you'll need to add custom regex through the `[p]pterodactyl config regex` command. Same thing applies if any other type of message isn't being detected. I recomend using ChatGPT or something similar for this, or if you need help, you can join my [Discord server](https://discord.gg/eMUMe77Yb8).  
See [Regex Examples](regex.md) for default values.

### `blacklist`

This group of commands allows you to add regex patterns that will be ignored by the console logger. The intended use for this is if you're getting ratelimited by messages that flood the console after the server sets its status to `running` but before it actually finishes starting.

### `achievement`

This regex pattern is used to detect advacnements/challenges. The default should work for most Minecraft servers.

### `chat`

This regex pattern is used to detect chat messages. You will probably have to change this if you're using any plugins or mods that use custom chat formatting, like EssentialsX Chat or Styled Chat.

### `join`

This regex pattern is used to detect whenever a user joins the server. You shouldn't usually need to change this.

### `leave`

This regex pattern is used to detect whenever a user leaves the server. You shouldn't usually need to change this.

### `server`

This regex pattern is used to detect whenever a server message is sent. You will have to change this if you aren't running on Paper, most likely.

## `serverid`

This option determines which server's websocket to connect to. See [Getting Started](getting-started.md#getting-server-information) for more information on this.

Default value: `None`

## `url`

This option determines what panel the cog will send requests to. See [Getting Started](getting-started.md#getting-server-information) for more information on this.

Default value: `None`

## `view`

Lists all of the configuration options offered by the cog.
