> For the complete documentation index, see [llms.txt](https://impoo.gitbook.io/authenticationsystem/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://impoo.gitbook.io/authenticationsystem/configuration.md).

# Configuration

The `config.yml` file controls how AuthSystem behaves. It is located at `plugins/AuthSystem/config.yml`.

{% hint style="info" %}
Changes to `config.yml` require a server restart or `/auth reload` to take effect.
{% endhint %}

## Generic settings

```yaml
generic:
  lang: "EN_us"
  update-checker: true
```

| Setting                  | Description                                     | Default |
| ------------------------ | ----------------------------------------------- | ------- |
| `generic.lang`           | Language code for messages (`EN_us` or `IT_it`) | `EN_us` |
| `generic.update-checker` | Check for updates via Modrinth API              | `true`  |

## Database settings

```yaml
database:
  host: "localhost"
  port: 3306
  username: "authsystem"
  password: "your_password"
  name: "authsystem_db"
  ssl: false
```

| Setting             | Description                            |
| ------------------- | -------------------------------------- |
| `database.host`     | Database server address                |
| `database.port`     | Database port (usually `3306`)         |
| `database.username` | Database user                          |
| `database.password` | Database user password                 |
| `database.name`     | Database name                          |
| `database.ssl`      | Enable SSL connection (`true`/`false`) |

## Authentication settings

```yaml
auth:
  timeout-seconds: 60
  too-many-attempts: "KICK"
  ban-time: 60
```

| Setting                  | Description                                                        | Options                                     |
| ------------------------ | ------------------------------------------------------------------ | ------------------------------------------- |
| `auth.timeout-seconds`   | Seconds unauthenticated players have to log in before being kicked | Any positive number (default: `60`)         |
| `auth.too-many-attempts` | Action when brute-force limit is reached                           | `KICK` or `BAN`                             |
| `auth.ban-time`          | Ban duration in minutes when `too-many-attempts` is `BAN`          | Any positive number (default: `60` minutes) |

## Language files

AuthSystem uses MiniMessage for formatted messages. Language files are located in `plugins/AuthSystem/lang/`:

* `EN_us.yml` — English (default)
* `IT_it.yml` — Italian

Each file maps message keys to MiniMessage-formatted strings. You can customize messages to match your server's style.

***

## Example complete config.yml

<details>

<summary>Click to expand full config.yml example</summary>

```yaml
generic:
  lang: "EN_us"
  update-checker: true

database:
  host: "localhost"
  port: 3306
  username: "authsystem"
  password: "changeme"
  name: "authsystem_db"
  ssl: false

auth:
  timeout-seconds: 60
  too-many-attempts: "KICK"
  ban-time: 60
```

</details>

***

> :bulb: **Tip**: Always back up your `config.yml` before making changes. If you get locked out, you can edit the database directly or use the console to run admin commands.
