Skip to content

Database & Sync

UltiTools supports three storage backends. Choose the one that fits your needs.

Comparison

BackendProsConsBest For
JSONHuman-readable data filesLowest performance, crash riskTesting only
SQLiteLocal storage, stableNo cross-server syncSingle server (recommended)
MySQLBest performance, multi-server syncRequires database setupProxy networks

Configuration

Edit plugins/UltiTools/config.yml:

yaml
datasource:
  type: "sqlite"  # Options: json, sqlite, mysql

Important

Switching storage backends does not migrate data automatically. Back up your data first.

MySQL Setup

If using MySQL, configure the connection:

yaml
datasource:
  type: "mysql"

mysql:
  enable: true
  host: localhost
  port: 3306
  username: root
  password: "your_password"
  database: ultitools

TIP

You need to create the database beforehand. UltiTools will automatically create the required tables.

Connection Pool Settings

These can be left at defaults unless you have specific requirements:

SettingDescriptionDefault
connectionTimeoutConnection timeout (ms)30000
keepaliveTimeKeep-alive interval (ms)60000
maxLifetimeMax connection lifetime (ms)1800000
maximumPoolSizeMax pool connections8

Multi-Server Sync

For BungeeCord/Velocity proxy networks, configure all sub-servers to use the same MySQL database:

  1. Set up a MySQL database
  2. Configure the same MySQL connection in every sub-server's config.yml
  3. Restart all sub-servers

Player data (homes, backups, economy, etc.) will automatically sync across all sub-servers.

Contributors

The avatar of contributor named as Ling Bao Ling Bao
The avatar of contributor named as Claude Opus 4.6 Claude Opus 4.6

Changelog

Released under the MIT License.