Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for HMLabs-Gaming

Synchronize player data (inventory, health, experience, etc.) across multiple servers within Velocity network.

Report HMTSync?

HMTSync

CurseForge Hangar SpigotMC GitHub

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

  1. Download the JAR that matches the platform:

    File Where it goes
    hmt-sync-<version>-spigot.jar plugins/ folder of every Paper/Spigot server
    hmt-sync-<version>-velocity.jar plugins/ folder of your Velocity proxy
  2. Start each server once so the plugin generates its plugins/HMTSync/config.yml.

  3. Configure each backend — set your database credentials and give every server a unique server-id (the proxy needs no server-id).

  4. 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.seed to 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.economy to sync balances (do not enable if another plugin already syncs money).
  • EssentialsX — enable sync-data.playtime to 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.

Information

Category
World Management
Published
October 13, 2026
License
7Downloads
0Stars

Pinned Versions

  • R
    Paper26.3Velocity3.1–4.2.1

Members

1