Synchronize player data (inventory, health, experience, etc.) across multiple servers within Velocity network.
HMTSync
HMT Sync keeps player data consistent across your whole network. When a player moves from one server to another, their inventory, health, hunger, experience and much more are carried over automatically — no lost items, no duplicated gear, no manual work.
Works on Paper / Spigot backends with the Velocity proxy.
Features
- Seamless server switching — the proxy saves a player's data on the source server before they connect to the destination server. No race conditions, no data loss.
- No double-login exploits — a database-level lock guarantees only one server can write a player's data at a time. A crashed server is recovered automatically.
- No lag — all database work runs asynchronously in the background.
- Synchronized data (each toggled on or off):
- Health, food level, saturation
- Experience (total, current, level)
- Inventory and armor
- Ender chest
- Potion effects
- Advancements and statistics
- PlayerData (PDC) values
- Flight & gamemode, including per-gamemode inventories
- Maps (keeps map artwork across servers)
- Companions / pets
- Location
- Optional Redis cache for faster server switches (SQL stays the source of truth).
- Optional economy & playtime sync via Vault and EssentialsX.
- Admin tools — in-game data inspector, manual lock release and data migration.
- Works with MySQL/MariaDB (recommended for a network) or SQLite (single server).
Requirements
- Minecraft: Paper 26.3+
- Backends: Paper or Spigot on every server that shares player data
- Proxy: Velocity 3.1+
- A shared MySQL/MariaDB database for a network (SQLite is fine for a single server)
Installation
Download the JAR that matches the platform:
File Where it goes hmt-sync-<version>-spigot.jarplugins/folder of every Paper/Spigot serverhmt-sync-<version>-velocity.jarplugins/folder of your Velocity proxyStart each server once so the plugin generates its
plugins/HMTSync/config.yml.Configure each backend — set your database credentials and give every server a unique
server-id(the proxy needs noserver-id).Restart the proxy and all servers.
That's it — player data will now follow players between your servers.
Configuration
The important settings in plugins/HMTSync/config.yml:
database:
type: mysql # "mysql" or "sqlite"
host: localhost
port: 3306
database: minecraft
username: user
password: password
sqlite-file: "player_data.db"
# A unique name for THIS server. Every backend sharing the database needs its own.
server-id: "survival-1"
# Which data to synchronize. Turn on what you need.
sync-data:
health: true
food-level: true
experience: true
inventory: true
armor: true
potion-effects: true
ender-chest: false
location: false
advancements: false
statistics: false
pdc: false
flight-gamemode: false
companions: false
maps: false
separate-gamemode-inventories: false
economy: false
playtime: false
# Optional Redis cache (leave disabled to use SQL only).
redis:
enabled: false
host: localhost
port: 6379
password: ""
storage-strategy: "mysql-only" # or "redis-mysql-hybrid"
Tips
- Give every server a different
server-id(e.g.survival-1,creative,lobby). - Keep the same database settings on every backend.
- Change
security.seedto a long random string before going public. - Newer features (
ender-chest,maps,economy,playtime, …) are off by default — enable them only if you want them.
Commands
On a backend server:
| Command | Description |
|---|---|
/hmtsync unlock <player> |
Release a stuck data lock for a player |
/hmtsync inspect <player> |
Open the data inspector for a player |
/hmtsync invsee <player> |
View (or edit) a player's inventory |
/hmtsync endersee <player> |
View (or edit) a player's ender chest |
/hmtsync migrate <source> <target> |
Move data from one identity to another |
/hmtsync-debug status |
Show plugin, economy, playtime and Redis status |
On the proxy (Velocity):
| Command | Description |
|---|---|
/hmtsync unlock <player> |
Relay an unlock request to the backends |
Permissions
| Permission | Default | Description |
|---|---|---|
hmtsync.admin |
op | Admin commands, unlock/migrate and debug tools |
hmtsync.inspect |
op | View-only inspection of player data and inventories |
hmtsync.inspect.edit |
op | Editing of player data and inventories |
Optional integrations
- Redis — enable the hybrid cache to make server switches faster.
- Vault + an economy plugin — enable
sync-data.economyto sync balances (do not enable if another plugin already syncs money). - EssentialsX — enable
sync-data.playtimeto sync playtime. - FastLogin / AuthMe — optionally auto-migrate data for cracked→premium transitions.
All integrations are optional and are simply ignored if the backing plugin is not installed.
Pinned Versions
- R26.33.1–4.2.1
Pages
Members
1Owner