Tenacity is currently alpha software. Use with caution.
Tenacity is a Paper plugin for sharing the same inventory and player data across multiple different minecraft servers (in a Velocity network, for example). It works by storing player data into a database, separate from the actual Minecraft servers. Every time a player joins the server, their data is fetched from the database and assigned to the player. Whenever a player leaves the server, their data is written back into the database.
To run Tenacity you will need a MySQL compatible database server (like MariaDB). You will need a user that can create tables and insert data into a database of your choice. Here's how to create one:
CREATE USER 'tenacity'@'localhost' IDENTIFIED BY 'ASecurePassword';
CREATE DATABASE tenacity;
GRANT ALL PRIVILEGES ON tenacity.* TO 'tenacity'@'localhost';
The name of the user and database are up to your discretion.
After starting your server once with Tenacity installed, a configuration file will be created in the
plugins/tenacity/
folder. You will have to modify it to match the database you just set up. For the
example above, a configuration like this would be valid:
database:
username: 'tenacity'
password: 'ASecurePassword'
host: 'localhost'
port: 3306
name: 'tenacity'
saving:
health: true
experience: true
food: true
effects: true
recipeBook: true
inventory: true
You can also customize what player data should be shared across servers by setting the values under saving
to
true
or false
. The actual configuration file contains more information about the different values.
Tenacity is a Gradle project. To build it, you will need an up-to-date build of JDK 17 installed
on your machine. To get started, download the source code (either by downloading the ZIP file or
git clone
-ing it). Then open the folder with the source code in a terminal or command prompt
and run ./gradlew shadowJar
. You will find the plugin's JAR file in ./build/libs
.
Also check out our other projects: