How to Sync Player Data Across Servers
Learn how to synchronize player inventories, economies, and permissions across multiple servers in your Minecraft network using databases and sync plugins.
The Challenge of Multi-Server Data
When players move between servers on your network, their data does not follow them by default. Inventories, balances, ranks, and stats are stored locally on each server. To sync player data across servers minecraft networks need a shared data layer, typically a MySQL or Redis database that every server reads from and writes to.
What to Sync (and What Not To)
Not all data should be synchronized. Consider your game modes:
| Data Type | Sync? | Reason |
|---|---|---|
| Economy balance | Yes | Players expect a single wallet across servers |
| Permissions/ranks | Yes | Staff ranks should work everywhere |
| Inventory | Sometimes | Only if servers share the same gameplay (e.g., two survival worlds) |
| Playtime/stats | Yes | Global leaderboards need unified data |
| World-specific progress | No | Skyblock islands, plot data stay on their server |
Setting Up a Shared Database
Most sync plugins require MySQL or MariaDB. Create a database and user with access from all your server IPs:
CREATE DATABASE minecraft_network;
CREATE USER 'mcnet'@'%' IDENTIFIED BY 'strong-password';
GRANT ALL ON minecraft_network.* TO 'mcnet'@'%';
FLUSH PRIVILEGES;
For Redis-based syncing, see our Redis for Minecraft guide.
Plugin Solutions
Economy: Shared Database Backend
Economy plugins like EssentialsX support MySQL storage. Configure each server to connect to the same database, and balances will sync player data across servers minecraft-wide. Set the same database credentials in every server's economy plugin config.
Permissions: LuckPerms
LuckPerms is the standard for cross-server permissions. Configure it to use MySQL or MariaDB:
storage-method: MySQL
data:
address: db.internal.example.com:3306
database: minecraft_network
username: mcnet
password: strong-password
Every server reads from the same permission data. Changes propagate instantly when LuckPerms uses its messaging service (Redis or plugin messaging).
Inventories: Cross-Server Inventory Plugins
Plugins like MySQLPlayerDataBridge or MultiInv store inventories in a shared database. Configure each server that should share inventories to use the same database and the same world group. Be careful with item compatibility when servers run different plugins or versions.
Handling Conflicts
The biggest risk when you sync player data across servers minecraft networks face is data conflicts. If a player is on two servers simultaneously (due to a bug or exploit), both servers might write different data to the database. Prevent this by:
- Locking player data when they join a server and unlocking when they leave.
- Using a proxy-level plugin that prevents duplicate sessions.
- Adding a brief delay between server transfers to let data save.
For the networking layer that makes all this possible, see linking servers with shared data. To sync player data across servers minecraft setups must combine a reliable database, properly configured plugins, and conflict prevention measures.
See a polished network in action: Astroworld MC, IP play.astroworldmc.com, Java + Bedrock.