> 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/faq.md).

# FAQ

Frequently asked questions about AuthSystem.

## General

### What is AuthSystem?

AuthSystem is a Minecraft Paper authentication plugin that requires players to register and log in before playing. It is designed primarily for cracked servers (online-mode=false) but also supports premium accounts.

### Which versions does AuthSystem support?

AuthSystem requires **Paper 1.21.8** and **Java 21**. It is built with Gradle 9.4.1.

### Is AuthSystem free?

Yes. AuthSystem is an open-source plugin.

## Installation

### Do I need a database?

Yes. AuthSystem requires a MySQL or MariaDB database. It connects via HikariCP and stores player data in the `auth_players` table.

### Can I use SQLite instead?

No. AuthSystem is designed for MySQL/MariaDB only.

### Do I need to create the database table manually?

No. AuthSystem creates the `auth_players` table automatically on startup.

## Authentication

### What happens if a player forgets their password?

An administrator can reset it with:

```
/auth changepassword <player> <newPassword>
```

This requires the `authsystem.command.adminChangePassword` permission.

### Can unauthenticated players chat?

No. Unauthenticated players cannot send chat messages. This is enforced by the `PlayerChatListener`.

### Can unauthenticated players run commands?

Only authentication commands (`/register`, `/login`, `/changepassword`, `/premium`, `/auth ...`). All other commands are blocked.

### How long do players have to log in?

By default, 60 seconds (`auth.timeout-seconds`). After that, they are kicked.

### Do premium players need to register?

Premium players are detected automatically. They must confirm their identity within 10 seconds. If they don't confirm, they must register or log in like any other player.

## Security

### How are passwords stored?

Passwords are hashed with **BCrypt cost 12**. They are never stored in plain text.

### What happens after too many failed login attempts?

After 5 failed attempts per player (or 10 per IP), the player is kicked or banned, depending on `auth.too-many-attempts`.

### Can I ban players who brute-force?

Yes. Set `auth.too-many-attempts` to `BAN` and `auth.ban-time` to the desired duration in seconds.

## Commands

### Can admin commands be run from console?

Yes. Console commands bypass permission checks.

### What permissions do I need for /auth reload?

You need `authsystem.command.reload` (default: `op`).

## Database

### What is the table name?

The table is `auth_players` with columns: `id`, `username`, `uuid`, `password_hash`, `last_ip`, `registered_at`, `premium`.

### Can I modify the database directly?

You can, but it's not recommended. Use AuthSystem commands instead. If you must modify the database directly, make a backup first.

## Language

### What languages are supported?

English (`EN_us.yml`) and Italian (`IT_it.yml`). Both use MiniMessage formatting.

### Can I add my own language?

Yes. Create a new `.yml` file in `plugins/AuthSystem/lang/` and set `generic.lang` to match the filename (without the `.yml` extension).

## Developers

### Does AuthSystem have an API?

Yes. See the [Developers section](https://github.com/VyraDocs/AuthSystem/tree/main/developers/readme.md) for the full API reference.

### Can I listen to AuthSystem events?

Yes. AuthSystem uses Bukkit event listeners (`PlayerJoinQuitListener`, `PlayerCommandListener`, `PlayerChatListener`). See [developers/events.md](https://github.com/VyraDocs/AuthSystem/tree/main/developers/events.md).

***

> :bulb: **Tip**: If your question isn't answered here, check the [Troubleshooting](/authenticationsystem/troubleshooting.md) page or reach out to the AuthSystem community.
