Storage
RexPractice can store player profiles (stats, settings, friends, kit layouts) in:
| Type | Config value | Typical use |
|---|---|---|
| H2 (default) | h2 | Single server, zero setup |
| YAML | yaml | Simple file-per-player |
| SQLite | sqlite | Single server file DB |
| MySQL / MariaDB | mysql | Shared DB / networks |
storage: type: h2 mysql: host: localhost port: 3306 database: rexpractice username: root password: "" pool: maximum-pool-size: 10Where files live
Section titled “Where files live”| Backend | Path |
|---|---|
| H2 | plugins/RexPractice/storage/rexpractice.mv.db (H2 file) |
| SQLite | plugins/RexPractice/storage/rexpractice.sqlite |
| YAML | plugins/RexPractice/playerdata/<uuid>.yml |
| MySQL | External server (storage.mysql.*) |
MariaDB uses the same mysql settings and driver.
Changing type
Section titled “Changing type”- Stop the server.
- Set
storage.type. - Start again.
Reload does not switch storage backends. Always restart after changing storage.type.
YAML import
Section titled “YAML import”If you start H2 / SQLite / MySQL with an empty database and existing playerdata/*.yml files, RexPractice imports those profiles once and logs how many were imported.
There is no ongoing dual-write. After import, YAML files are left in place but no longer updated (unless you switch back to yaml).
Leaderboards
Section titled “Leaderboards”JDBC backends (H2, SQLite, MySQL) query top entries from the database, so offline players stay on the board.
YAML mode uses an in-memory board seeded from online loaded players.