Skip to content

MySQL Configuration

By default, KOTL stores player data in data/stats.yml. MySQL can be used when statistics need to live in an external database.


address: jdbc:mysql://localhost:3306/<database_name>?useSSL=false&autoReConnect=true&createDatabaseIfNotExist=true
PartDescription
localhostDatabase host or IP address.
3306MySQL port.
<database_name>Database name that must be replaced.
useSSL=falseDisables SSL unless your database requires it.
autoReConnect=trueRequests automatic reconnection.
createDatabaseIfNotExist=trueAllows creation when the account has permission.

user: root
password: <your_password>

Replace both values with a dedicated database account. The password is stored as plain text, so never publish mysql.yml.


The current storage implementation reads:

stats-table: kotl_stats

The table contains:

  • uuid
  • name
  • kill
  • death
  • score
  • tours_played
  • Serialized arena_scores

KOTL creates the table if needed and adds missing statistic columns during startup.


test-on-startup: true

When enabled, the shared database connection layer validates credentials during startup and reports connection errors to the console.


  • Access denied: Verify username, password, database grants, and permitted host.
  • Communications link failure: Verify host, port, firewall, and MySQL availability.
  • Unknown database: Create it manually or grant permission for createDatabaseIfNotExist.
  • Queries reference a null table: Ensure the key is named stats-table.