Skip to main content
PerPlayerKit persists all kit data — inventory contents, enderchest snapshots, and player associations — in a database. You choose the storage backend inside config.yml under the storage key. For a single-server setup the built-in SQLite driver requires zero external services and is ready immediately after installation. If you run a network of servers that share kit data, switch to MySQL, PostgreSQL, or Redis to give every node access to the same persistent store.

Choosing a Backend

SQLite

Recommended for single servers. Stores all data in a local file — no database server needed. Zero configuration beyond setting the type.

MySQL / MariaDB

Recommended for multi-server networks. A widely supported relational database that all your nodes can read from and write to simultaneously.

PostgreSQL

Recommended for multi-server networks. A powerful open-source relational database. Use this if your infrastructure already runs Postgres.

Redis

High-performance distributed setups. An in-memory data store suited for networks that need extremely fast read/write throughput.
The yml (YAML) storage type writes kit data to flat files on disk. It exists only for development and quick testing — do not use it in a production environment. It does not scale, offers no query capability, and can corrupt data under concurrent load.

Configuration

Set storage.type to the backend you want, then fill in the corresponding credentials block. You only need to populate the section that matches your chosen type — all other credential blocks are ignored.
SQLite requires no additional credentials. Set the type and you’re done.
config.yml
storage:
  type: "sqlite"

Configuration Reference

Common Fields (MySQL & PostgreSQL)

host
string
required
The hostname or IP address of your database server. Use localhost if the database runs on the same machine as your Minecraft server.
port
string
required
The port the database server listens on. Defaults are 3306 for MySQL and 5432 for PostgreSQL.
dbname
string
required
The name of the database (schema) PerPlayerKit will use. Create this database in advance and grant your user the necessary permissions.
username
string
required
The database user PerPlayerKit authenticates as. Grant this user SELECT, INSERT, UPDATE, DELETE, and CREATE TABLE privileges on the target database.
password
string
required
The password for the database user. Store your config.yml securely and restrict file permissions so this value is not exposed.
useSSL
boolean
default:"false"
Set to true to require an encrypted TLS connection between PerPlayerKit and the database server. Recommended for any database not running on localhost.
maximumPoolSize
integer
default:"10"
The maximum number of connections HikariCP will open to the database. Increase this value if you have a high player count and observe connection-wait timeouts in the logs.

Redis Fields

host
string
required
The hostname or IP address of your Redis server.
port
integer
default:"6379"
The port Redis listens on. The default is 6379.
password
string
The Redis requirepass password. Leave empty or omit if your Redis instance has no authentication configured.
If you need to move existing kit data from one backend to another — for example, migrating from SQLite to MySQL as your network grows — see the Storage Migration guide for step-by-step instructions.