storage
SQLite vs MySQL, per-server isolation, MySQL credentials.
VotePlus ships with two storage backends. SQLite is the default and needs zero setup. MySQL is what you want if you're sharing data across multiple servers.
Choosing a backend
| Backend | When to use it |
|---|---|
| SQLite | Single server. The file lives at plugins/TDXVotePlus/data.db. |
| MySQL | Multiple servers sharing a database, or you want managed backups. |
SQLite
general:
storage: sqliteThat's the entire configuration. SQLite uses WAL mode for safe concurrent reads, and the database file is created automatically on first start.
MySQL
general:
storage: mysql
mysql:
host: "db.your-host.tld"
port: 3306
database: "tdx_voteplus"
username: "tdx"
password: "a-strong-password"
use-ssl: true
pool-size: 8
server-id: "survival"Reference
| Key | Type | Default | Notes |
|---|---|---|---|
host | string | DNS name or IP of the MySQL host. | |
port | int | 3306 | |
database | string | Must already exist. Plugin creates its own tables on first connect. | |
username | string | Needs CREATE TABLE and full DML in the target database. | |
password | string | Treat as a secret — see the warning below. | |
use-ssl | boolean | true | Disable only when connecting to localhost. |
pool-size | int | 8 | HikariCP max pool size. Bump on busy servers; lower if your DB host has a connection cap. |
server-id | string | default | Per-server isolation key — see below. |
Treat mysql.password like a password. Restrict file permissions on
config.yml so only the server process can read it, and rotate the
credential if you suspect it's leaked.
Per-server isolation
If you run more than one game server against the same MySQL database
and want each to keep its own independent player counters, streaks,
milestones, and offline queue, set mysql.server-id to a unique
identifier per server (e.g. survival, skyblock, prison).
mysql:
server-id: "skyblock"The global vote-party counter is intentionally still shared across every server, so a server-wide party fires in sync on your whole network. Player-scoped counters are not.
The Votifier topology you use (a single endpoint vs NuVotifier
forwarding to each backend) directly affects how offline votes
get rewarded across servers. Read the mysql.server-id comment in
config.yml for the full explanation — it's the most important
section to understand before going multi-server.