Skip to main content

Database Setup

XDiscordUltimate persists linked accounts, tickets, stats, and moderation records in a relational database via HikariCP connection pooling. SQLite needs zero configuration - it is the default and works out of the box. Use MySQL or PostgreSQL for networks, multiple servers sharing one dataset, or higher write throughput.

Choose a Backend

SQLite is the default and stores everything in a single file. No server to run, no credentials to manage.
database:
  type: sqlite
  sqlite:
    file: data.db
The database file is created at plugins/XDiscordUltimate/data.db.
SQLite is ideal for single-server setups up to a few hundred players. Back up data.db by copying the file while the server is stopped.

Connection Pooling

All backends run through HikariCP. Default pool settings:
SettingValueNotes
maxPoolSize10Sufficient for most servers; raise for large networks
Leak detectionEnabledWarns in logs if a connection is held too long
The schema is created automatically on first run. A schema_versions table tracks migrations, so future plugin upgrades apply any pending schema changes on startup.

Next Steps

First Run

Run through the first-run checklist.

Database API

Access the persistence layer programmatically.