A modern, cross-server player data synchronisation system
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
William 520f1ea1d7 Add advancement, location and flight syncing, fix an issue that sometimes led to inconsistent syncs 3 years ago
bukkit Add advancement, location and flight syncing, fix an issue that sometimes led to inconsistent syncs 3 years ago
bungeecord Add advancement, location and flight syncing, fix an issue that sometimes led to inconsistent syncs 3 years ago
common Add advancement, location and flight syncing, fix an issue that sometimes led to inconsistent syncs 3 years ago
gradle/wrapper Initial commit 3 years ago
images Add information command 3 years ago
plugin Initial project setup, building, setup planning, readme & redis 3 years ago
.gitignore Finish initial implementation of plan 3 years ago
README.md Add information command 3 years ago
build.gradle Initial project setup, building, setup planning, readme & redis 3 years ago
gradle.properties Initial commit 3 years ago
gradlew Initial commit 3 years ago
gradlew.bat Initial commit 3 years ago
settings.gradle Initial project setup, building, setup planning, readme & redis 3 years ago

README.md

CrossServerSync

CrossServerSync is a robust solution for synchronising player data (inventories, health, hunger & status effects) between servers. It was designed as a much faster alternative to MySQLPlayerDataBridge,

Installation

Install CrossServerSync in the /plugins/ folder of your Spigot (and derivatives) servers and Proxy (BungeeCord and derivatives) server. Start your servers, then stop them again to allow the configuration files to generate.

Navigate to the generated config.yml files on your Spigot server and Proxy (located in /plugins/CrossServerSync/) and fill in the credentials of your redis server. On the Proxy server, you can additionally configure a MySQL database to save player data in, as by default the plugin will create a SQLite database for this.

If you have multiple proxy servers (i.e. via RedisBungee), you need to install the plugin on all of them and make use of the MySQL option and ensure the proxies are using the same database.

How it works

Flow chart showing different processes of how the plugin works CrossServerSync synchronises player data between servers using Redis to transfer cached data, loaded from a central database as necessary.

Building

To build CrossServerSync, run the following in the root of the repository:

./gradlew clean build