MC-Data-Bridge
2.2.3Sync player data, inventory, health, XP, effects, and more across your BungeeCord/Velocity network.
2.2.3latestMC-Data-Bridge 2.2.3Sep 18, 2026 MC Data Bridge - Release Notes (v2.2.3)
Overview
Version 2.2.3 adds Minecraft 26.3 compatibility, updating core dependencies and Paper API target versions for cross-server item stack synchronization on Minecraft 26.3+ servers. ---Key Changes
Minecraft 26.3 Compatibility
- Dependency Upgrades: Upgradedde.tr7zw:item-nbt-apito2.16.1(including PR #360 item stack mirror resolution),io.papermc.paper:paper-apito26.3-pre-2.build.0-alpha, andnet.kyoriAdventure libraries to5.2.0. - Full 26.3 Item & Component Support: Tested and verified full cross-server item synchronization for Minecraft 26.3 (including new Poplar wood items, cushions, beds, and wool/concrete stairs and slabs). --- _For installation instructions and configuration details, please refer to [README.md](README.md), [ARCHITECTURE.md](ARCHITECTURE.md), and [DATABASE_SETUP.md](DATABASE_SETUP.md)._2.2.2MC-Data-Bridge 2.2.2Sep 13, 2026 MC Data Bridge - Release Notes (v2.2.2)
Overview
Version 2.2.2 is a major release introducing enterprise-grade concurrency, integrity, and performance protections derived from an architectural security audit. Features include monotonic distributed lock fencing tokens, normalized snapshot SHA-256 integrity validation, single-transaction atomic saves, event-driven lock release messaging to eliminate pre-login latency, standard HMAC-SHA256 identity hashing, and automated unit testing in CI. ---Key Changes
- Epoch Fencing Protection: AddedMonotonic Distributed Lock Fencing Tokens (#41, AUDIT §2)
lock_version(BIGINT DEFAULT 0) toplayer_data. Every lock acquisition incrementslock_version, producing a monotonic fencing token. - Stale Write Prevention: Saves, heartbeats, and lock releases evaluateWHERE uuid = ? AND locking_server = ? AND lock_version = ?. Delayed servers or un-fenced post-GC pause writes are automatically rejected, protecting database state from stale session overwrites.
- Normalized SHA-256 Checksum Verification: AddedNormalized Data Integrity Checksums (#42, AUDIT §3)
snapshot_checksum(VARCHAR(64)) toplayer_data. - Snapshot Integrity Verification: Computes canonical SHA-256 hashes across health, food, XP, NBT blobs (inventory, armor, ender chest, PDC), and game mode salted withsecurity.seed. Protects against database tampering across normalized component tables.
- Single-Transaction Component Saves & Releases (#44):Atomic Single-Transaction Persistence & Migration (#44, #45, AUDIT §5, §6)
saveAndReleaseLockComponentsnow executes all component writes (databridge_inventories,statistics,metadata,companions,maps) and lock releases within a single database connection and transaction (setAutoCommit(false)...commit()). - Transactional Legacy Migration (#45):loadLegacyDataexecutes component migration and legacydata = NULLclearing inside a unified transaction with automatic rollback (rollback()) on failure to eliminate dual-source-of-truth conditions.
- ⚡ Up to 10X Faster Cross-Server Transfers: Dispatches an instantEvent-Driven Lock Release Messaging —
Up to 10X Faster Server Switching (#46, AUDIT §9)
LockReleasedplugin message upon source server save completion. Destination servers wake up waiting pre-login threads immediately, slashing server-switch lock wait latency from ~500ms down to a near-instant ~50ms! - Resilient Fallback: Retains 500ms database polling loops as a zero-downtime fallback mechanism if network messages are dropped.
- Standard HMAC-SHA256: Upgraded identity hashing inKeyed HMAC-SHA256 Identity Verification (#47, AUDIT §12)
HashUtilsto use standardHmacSHA256key derivation withsecurity.seed. - Seamless Dual Verification: Automatically verifies existing records against both HMAC-SHA256 and legacy salted SHA-256 digests for 100% backward compatibility without table migrations.
- CI Test Automation: Re-enabled automated unit testing in GitHub Actions (Automated CI Unit Testing & Concurrency Suite (#43, AUDIT §16)
.github/workflows/maven.yml) on pull requests and merges. - Concurrency & HMAC Unit Tests: AddedLockFencingTestandHashUtilsTestverifying lock token increments, stale write rejections, HMAC generation, legacy fallback, and null safety.
- Streamlined Platform Descriptions: OverhauledDocumentation & Onboarding Overhaul
README.md,DESCRIPTION.md, and Spigot/Modrinth listings with cleaner layouts and fast-start guides to improve reader onboarding. - Dedicated Technical Guides: Separated complex architectural concepts and database setup instructions into dedicated [ARCHITECTURE.md](github.com/westkevin12/mc-data-bridge/ARCHITECTURE.md) and [DATABASE_SETUP.md](github.com/westkevin12/mc-data-bridge/DATABASE_SETUP.md) files for cleaner readability. --- _For installation instructions and configuration details, please refer to [README.md](README.md), [ARCHITECTURE.md](ARCHITECTURE.md), and [DATABASE_SETUP.md](DATABASE_SETUP.md)._2.2.1MC-Data-Bridge 2.2.1Sep 3, 2026 MC Data Bridge - Release Notes (v2.2.1)
Overview
Version 2.2.1 is a release streamlining map synchronization architecture, introducing configurable map locking enforcement, fixing map canvas color palette rendering issues, and adding automatic config migration from v2.2.0. ---Key Changes
Map Sync Architecture Simplification (#36, #39)
[!NOTE]
Developer Note: _"I couldn't think of a single valid use case for return mode with held map items. It seemed like a good idea at first, but having a broken, unusable map item on another server would likely never be the server admin's intention."_
- Streamlined Map Synchronization Model: Removed legacymaps.mode(return/untrackedper-server stashing). Map synchronization is now toggled cleanly viasync-data.maps: false(default, vanilla style handling) orsync-data.maps: true(global map sync). - Configurable Map Locking (`maps.lock-global-maps`): Addedmaps.lock-global-maps: false(default). When set totrue, enforces map locking (locked = 1) on cross-server maps to prevent target servers from re-scanning terrain or applying Fog of War over custom artwork. - Automatic Legacy Config Migration: Existingv2.2.0configuration files are automatically upgraded on startup: - Legacymaps.mode: global-> Migrated tosync-data.maps: true,maps.lock-global-maps: true. - Legacymaps.mode: return/untracked/off-> Migrated tosync-data.maps: false,maps.lock-global-maps: false. - Obsoletemaps.modeconfig entries are automatically removed. - Fixed `maps_nbt` Persistence: Corrected snapshot extraction and database merge logic to ensure map snapshots and canvas pixels are saved non-null to the{table-prefix}databridge_mapstable. - Locked Map Resolution Support: Improved map ID resolution logic (resolveMapId) to resolve map IDs from item components and PDC (databridge:original_map_id), preventing locked maps created in Cartography Tables from being skipped during saves. - Canvas Palette & Renderer Fix: Resolved canvas rendering issues where maps rendered as solid brown blocks. Default background world renderers are now cleared (view.getRenderers().clear()) before applying custom raw canvas palette byte renderers. --- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._2.2.0MC-Data-Bridge 2.2.0Aug 26, 2026 MC Data Bridge - Release Notes (v2.2.0)
Overview
Version 2.2.0 introduces Map Sync Between Servers and Separate Gamemode Inventories, allowing players and staff members to maintain isolated inventory profiles per gamemode and stash maps per-server across proxy networks without data conflicts, alongside core dependency updates. ---Key Changes
- Server-Isolated Map Stashing (`mode: return`): Filled map items created on Server A are tagged with origin metadata (Map Sync Between Servers (#36)
databridge:origin_serveranddatabridge:original_map_id). When transferring to Server B, foreign maps are safely stashed in the database (databridge_maps) and automatically restored to their inventory slots when returning to Server A. - Configurable Map Synchronization Modes: Added a newmaps:config section supporting three modes: -return(default): Stashes and restores server-specific map items per server. -global: Synchronizes map canvas pixel data across all network servers. -untracked: Legacy vanilla map handling. - Component Database Storage: Added{table-prefix}databridge_mapstable in MySQL and SQLite for atomic map persistence and cross-server UUID data migration.
- Opt-In Gamemode Inventory Separation (`sync-data.separate-gamemode-inventories`): Staff members and players can maintain separate inventory, armor, and Ender Chest profiles for Survival, Creative, Adventure, and Spectator modes. - Live Gamemode Swapping Hook: Automatically snapshots and restores gamemode-specific inventory profiles when switching gamemodes on the fly (Separate Gamemode Inventories (#33)
PlayerGameModeChangeEvent). - Isolated Component Table: Stores gamemode inventory profiles in{table-prefix}databridge_gamemode_inventoriesusing(uuid, gamemode)composite key.
- MySQL Connector/J: UpdatedDependency Updates
com.mysql:mysql-connector-jfrom9.7.0to26.7.0. - Item NBT API: Updatedde.tr7zw:item-nbt-apifrom2.15.7to2.16.0. - JUnit Jupiter: Updatedorg.junit.jupiter:junit-jupiterfrom6.1.0to6.1.3. --- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._2.1.9MC-Data-Bridge 2.1.9Aug 12, 2026 MC Data Bridge - Release Notes (v2.1.9)
Overview
Version 2.1.9 delivers Proxy Subcommand Auto-Forwarding across proxy platforms (Velocity, BungeeCord, and Waterfall) and Real-Time Online Player Live Inventory Sync & Active Edit Lock Protection. ---Key Changes
- Proxy-to-Backend Command Routing: Non-Proxy Subcommand Auto-Forwarding (#34)
unlocksubcommands (e.g./databridgeor/dbfollowed byinvsee,endersee,inspect,reload,sync,migrate) executed by players on proxy servers (Velocity, BungeeCord, and Waterfall) are now automatically routed downstream to their connected backend Paper/Spigot server without requiring explicit namespace prefixes (/mc-data-bridge:databridge). - Namespace Interception Fix: Fixes command hijack and usage rejection issues when running shorthand/databridgesubcommands across proxy setups.
- Real-Time In-Memory Update: Edits made to an online player's inventory or ender chest viaOnline Player Live Inventory Sync & Active Edit Lock (#31, #32)
/databridge invsee --editor/databridge endersee --editnow immediately update the target player's live, in-memory inventory on their active server instance. - Cross-Server Live Sync: Dispatches aLiveInventorySyncmessage over themc-data-bridge:mainplugin channel when editing online players on other servers across the proxy network, forcing an instant live memory reload without requiring player relog. - Pre-Fetch Memory Snapshot: Opening an inspection GUI for a locally online player automatically snapshots their live memory state first, preventing recent item pickups or drops from being overwritten by older database data. - Active Edit Lock Protection: Protects online target players from inventory desync or duplicate item exploits while an admin is actively modifying their inventory in an edit GUI. --- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._2.1.8MC-Data-Bridge 2.1.8Jul 26, 2026 MC Data Bridge - Release Notes (v2.1.8)
Overview
Version 2.1.8 introduces Item Duplication Exploit Protection, Full Tab Completion, Interactive Inventory & Ender Chest Inspection (`invsee` & `endersee`) with read-only and edit modes, Granular Permissions, Database Schema Auto-Migration, and Paper 26.2 Platform Parity. ---Key Changes
- Special Thanks: Special thanks to @AllenLinong for discovering and reporting this critical exploit ([#30](https://github.com/westkevin12/mc-data-bridge/issues/30))! - Safe Inventory Closure: Open inventory views are automatically closed before player data snapshots are captured during server switches. - Transfer Lock Enforcement: Cancels item drops, item pickups, container clicks, inventory drags, and block/entity interactions while a player transfer or database save is in progress.Item Duplication Exploit Protection (#30)
- New Subcommands & Aliases: -Interactive Inventory & Ender Chest Inspector (
invsee/endersee)/databridge inspect <player> [inventory|enderchest] [--edit]-/databridge invsee <player> [--edit]-/databridge endersee <player> [--edit]- Safe View-Only Mode (Default): Inspection GUIs open in read-only mode by default (Left-Click in Overview GUI) to prevent accidental item modifications or unintended edits. - Interactive Edit Mode (`--edit` flag or Right-Click): Admins withdatabridge.inspect.editpermission can interactively edit items (Right-Click in Overview GUI or using--editflag) in offline/cross-server player inventories or ender chests directly inside the GUI. - Database Auto-Save: Closing an editable GUI (InventoryCloseEvent) automatically serializes modified item stacks back to the database so changes apply when the player logs in.
-Granular Permission Nodes
databridge.inspect(ordatabridge.admin): Permission to view player data, inventories, and ender chests in safe read-only mode. -databridge.inspect.edit(ordatabridge.admin): Elevated permission required to open interactive edit mode using the--editflag. -databridge.admin: Full administrative access to all commands and subcommands.
- TabExecutor / Brigadier Integration: Added dynamic auto-completion for subcommands (Full Command Tab Completion
unlock,inspect,invsee,endersee,migrate), online player names, view types (inventory,enderchest), and the--editflag.
- Auto-Update Schema: AddedDatabase Schema Maintenance & Upgrades
auto-update-schemaconfiguration toggle (defaulttrue) to automatically manage table upgrades. - Column Expansion: Upgradedvanilla_stats_jsoncolumn toLONGTEXT(MySQL/MariaDB) /TEXT(SQLite) to accommodate large recipe books, advancements, and vanilla statistics.
- Updated Target API: Compiled and tested against Paper APIPaper 26.2 & Dependency Upgrades
26.2and verified on Paper 26.2+ servers. - HikariCP: Upgraded connection pool library to7.1.0. - Platform Reflection: Retains full backward compatibility for pre-26.2 Spigot/Paper versions via dynamic reflection. --- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._2.1.7MC-Data-Bridge 2.1.7Jun 26, 2026 MC Data Bridge - Release Notes (v2.1.7)
Overview
Version 2.1.7 is a targeted bugfix release that upgrades thevanilla_stats_jsoncolumn type in the statistics component table toLONGTEXT(for MySQL/MariaDB), preventing potential data truncation issues when synchronizing large volumes of vanilla player statistics. It also introduces automatic schema migration for existing databases. ---Changes in v2.1.7
- Upgrade to LONGTEXT: Upgraded theDatabase Schema Upgrade & Migration
vanilla_stats_jsoncolumn fromTEXTtoLONGTEXTin thedatabridge_statisticstable to support larger JSON payloads without risk of truncation. - Automated Migration: Added support for automatically executing theALTER TABLE ... MODIFY COLUMN ...statement whenauto-update-schemais set totruein the configuration. - Admin Warning Notice: Ifauto-update-schemais disabled, the plugin will now log a prominent warning suggesting the manual execution of the schema migration command:
--- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._ALTER TABLE `table_prefix_databridge_statistics` MODIFY COLUMN vanilla_stats_json LONGTEXT DEFAULT NULL;2.1.6MC-Data-Bridge 2.1.6Jun 12, 2026 MC Data Bridge - Release Notes (v2.1.6)
Overview
Version 2.1.6 is a comprehensive feature and security update that introduces multi-server Companion & Pet Synchronization, implements dynamic Full Vanilla Player Statistics Synchronization, completes database schema normalization, adds compressed binary NBT serialization, embeds a Prometheus Metrics Exporter, and hardens overall network security with strict seed verification. ---Key Features & Improvements
- Dynamic Statistics Sync: Replaced the legacy hardcoded list of 16 statistics with a dynamic, version-independent synchronization loop that covers all vanilla player statistics. - Qualified/Typed Statistics Support: Fully syncs all typed statistics requiring qualifiers—including blocks mined, items crafted/used/broken/picked up/dropped, and entities killed or killed by (e.g.,Full Vanilla Player Statistics Synchronization
MINE_BLOCK:STONE,KILL_ENTITY:ZOMBIE,USE_ITEM:IRON_PICKAXE). - Intelligent State Application: Minimizes database updates and server overhead by only applying statistic changes when values differ from the server's current values. - State Cleanup & Resets: Restores synchronization parity by resetting any non-zero stats on the destination server that are not present in the player's database snapshot (setting them back to zero). - Graceful Version Resilience: Silently handles version-specific or custom blocks, items, and entity types, maintaining perfect compatibility across heterogeneous multi-server environments.
- Multi-Mode Synchronization: AddedCompanion & Pet Synchronization
companions.mode(follow,return,untracked) to manage how pets are synced across the network. - Tamed Pet Persistence: Synchronizes tamed wolves, cats, parrots, and other pets across server switches. - Shoulder-Perched Entity Serialization: Saves and restores parrot shoulder-riding states. - State Preservation: Restores ownership, custom names, health/max health, and sitting status accurately. - NBT-Level Preservation: Utilizes NBTAPI metadata merging to preserve custom pet attributes, items, and collars. - Merge-on-Save Pattern: Adopts a robust relational state merging strategy to prevent NBT overrides and companion data loss across servers (critical forreturnmode). - Duplication Prevention: Despawns source entities synchronously upon snapshot generation to prevent duplication exploits.
- Companions Component Table: Introduced theRelational Component Schema Normalization
databridge_companionstable for row-level normalized storage. - Optimized SQL Transactions: Avoids write-amplification by target-updating specific components (inventories, statistics, metadata, companions) independently.
- Compressed NBT Storage: Adds support for native binary compression (Binary NBT Serialization Option
serialization-format: binary) to dramatically reduce database footprint, storage I/O, and CPU serialization overhead.
- Fails-Strict Safe Mode: Prevents startup if the default cryptographic seed is detected and no secure seed is configured, mitigating identity hijacking risks. - DDL Column Whitelists: Enforces SQL parameter and column sanitation to secure automated schema migration queries.Production Security Hardening
- Live Server Metrics: Provides an optional HTTPEmbedded Prometheus Metrics Exporter
/metricsscrape endpoint for Grafana/Prometheus tracking, exposing cache efficiency, database connection pool statistics, active transaction counts, and synchronization latencies. --- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._2.1.5MC-Data-Bridge 2.1.5Apr 29, 2026 MC Data Bridge - Release Notes (v2.1.5)
Overview
Version 2.1.5 is a stability patch focused on maintaining compatibility with the bleeding-edge Paper 26.1 API (Minecraft 1.21.4+). This release addresses a specific serialization issue with modern Adventure text objects and optimizes the plugin's internal dependency structure.Changes & Fixes
- Resolved aAdventure Text Serialization Patch
NoClassDefFoundErrorand serialization failure affecting niche Adventure text components, specifically those used in modern Player Head metadata. - Aligned internal dependencies with Adventure v4.26.1 to support the latest Minecraft 1.21.4 features.
- Paper 26.1 Support: Officially verified compatibility with the latest Paper alpha builds. - Dependency Optimization: Transitioned Adventure libraries toModern API & Build Stability
providedscope, maintaining a lightweight JAR (~3.0M) while ensuring native performance on Paper/Velocity. --- _For installation instructions and configuration details, please refer to the [README.md](README.md) and [config.yml](src/main/resources/config.yml)._2.1.3MC-Data-Bridge 2.1.3Apr 17, 2026 Refactor: Modernize for Java 25 & Fix Velocity Proxy Deadlocks (v2.1.3)
####Description This PR focuses on updating the core infrastructure to align with the bleeding-edge Minecraft 26.1.2 / Java 25 ecosystem. It also contains a critical fix for a cross-server data deadlock issue that occurred when switching servers on our proxy network. ####
Bug Fixes Velocity Server Switch Deadlocks:* Resolved a critical cross-server data lock issue where the proxy failed to gracefully intercept server transfers and release player SQL locks prior to routing. Annotation Processor Mitigation:* The root cause of the proxy deadlock was traced back to our Java 25 / Maven Annotation Processors suppressing proxy integration endpoints during compilation. By explicitly passing the
@PluginVelocity API annotation directly into the compiler arguments array, we've successfully recovered the generation of thevelocity-plugin.jsoninitialization file. The proxy component now initializes and intercepts transfers cleanly. Structural Null Safety:* Resolved BungeeCord and VelocityByteArrayDataOutput.writeUTFstructural inference problems around UUID String boundaries to ensure strict conformance toGuavaexpectations. ####Modernization & Technical Debt API Standardization:* * Updated
paper-apito26.1.2.build.7-alpha. * Updatedvelocity-apito3.5.0-SNAPSHOT(Build #592). * Updateditem-nbt-apito2.15.7. * Updated testing dependencies (mockito) to5.23.0. Legacy Refactors:* * Migrated health sync properties to utilizeAttribute.MAX_HEALTH, fully deprecating the legacyGENERIC_prefix requirements targeting modern APIs. * RestructuredPlayerQuitEventlogic in our flow suites to adopt modernComponentadventure text system, erasing legacy string deprecations natively. * Upgraded internal plugin message events to correctly route their legacy event parameters, accommodating proxy-transfer flags natively. ####Zero-Suppression Defensive Null Safety * Phased out
@SuppressWarningsfor null validation loops across the entire bridge logic constraint map, replacing them with mechanically enforcedjava.util.Objects.requireNonNullvalidation layers cleanly. * Safely rewired ambiguous core Bukkit states (getLocation,advancementIterator,getCommand) to aggressively trap and seal implicit analyzer NPE leakages directly inside the event pipeline. ####Build Pipeline Adjustments * Upgraded compiler compliance matrix to strictly target Java 25 (
<release>25</release>). * Bumpedmaven-shade-pluginnatively to3.6.2, and injected cutting-edgeorg.ow2.asm9.9.1dependencies to successfully resolve shade failures against Java 25's new major bytecode signatures.
- [x] Verified compilation integrity on Java 25. - [x] Live tested on proxy environment (Testing & Verification
Velocity 3.5.0handling twoPaperMC 26.1.2instances). - [x] Tested rapid server hopping back-and-forth between instances. - [x] Verified perfect synchronization across Health, Inventory, and complex NBT data during immediate server switches with zero proxy timeouts or deadlocks.2.1.2MC-Data-Bridge 2.1.2Feb 21, 2026 Release Notes - v2.1.2
MC Data Bridge v2.1.2 - Maintenance & Dependency Update This release focuses on updating core dependencies and resolving build-time compatibility issues. ---
- Dependency Updates: - UpdatedMaintenance
MockBukkitto3.133.2. - Updatedpaper-apito1.21.1-R0.1-SNAPSHOT(Fixed compatibility issues with newer MockBukkit). - Updatedmysql-connector-jto9.6.0. - Updatedmockitoto5.14.2. ---2.1.1MC-Data-Bridge 2.1.1Dec 25, 2025 Release Notes - v2.1.1
MC Data Bridge v2.1.1 - Critical Bug Fix & Stability Update This patch release addresses a critical issue reported where players with boosted health (e.g., via Health Boost potion effects or attributes) were being kicked upon switching servers. ---
Fixed Kick on Server Switch with High Health:* Resolved an issue where players with health greater than 20.0 (Health Boost) would be kicked with anBug Fixes
IllegalArgumentException. The plugin now safely handles this by loading potions and attributes from the database before setting the max health attribute.2.1.0MC-Data-Bridge 2.1.0Dec 13, 2025 Release Notes - v2.1.0
MC Data Bridge v2.1.0 - Official Minecraft 1.21.11 Support | Secure MySQL Player Data Synchronization - Now fully compatible with Minecraft 1.21.11. Securely syncs all player data (inventory, health, XP, hunger) using robust MySQL locking across your BungeeCord or Velocity network. --- Deploy this JAR to all your PaperMC and Spigot servers, connecting to the corresponding proxy plugin (BungeeCord or Velocity) and a centralized MySQL database. ####What's New in v2.1.0\ Minecraft 1.21.11 Compatibility:* Full support for the latest Minecraft 1.21.11 release. This ensures all player data structures, including any new or updated serialization components introduced in the latest version, are correctly captured and applied without errors. ####
Core Features & Stability\ Complete Player Data Synchronization:* Securely saves and loads all essential player attributes across your network, including: - Inventory and Armor - Health and Max Health - Experience Level and Progress - Full Hunger Attributes: Food Level, Saturation, and Exhaustion. - Potion Effects - Ender Chest, Advancements, and Statistics (configurable). - Robust Data Integrity (MySQL Locking): Employs a server-ID-based database locking mechanism to prevent race conditions and data corruption when players switch servers quickly or disconnect abruptly. - Lag-Free Performance: All database operations (lock acquisition, save, and load) are performed asynchronously off the main server thread to prevent server lag. - Admin Utility: Use the
/databridge unlock <player>command to manually clear player data locks if a connection is unexpectedly terminated.2.0.8MC-Data-Bridge 2.0.8Dec 13, 2025 Release Notes - v2.0.8
- Fixed Saturation & Exhaustion Sync: Resolved an issue where saturation and exhaustion levels were not being saved or applied. These fields now correctly sync whenBug Fixes
food-levelis enabled inconfig.yml.2.0.3MC-Data-Bridge 2.0.3Dec 7, 2025 Release Notes - MC Data Bridge v2.0.3
Granular Data Synchronization*: You can now toggle exactly what data is synced inNew Features
config.yml. Addedsync-datasection. Ender Chest Sync*: Added support for synchronizing Ender Chest contents! (Disabled by default, enable in config). Advancements Integration*: Added support for standard Advancements and Recipes! (Disabled by default). Admin Unlock Command*: Added/databridge unlock <player>to manually release a stuck lock. Blacklist*: Addedsync-blacklistto disable synchronization on specific servers or worlds.
Configurable Heartbeat*: AddedImprovements & Optimizations
lock-heartbeat-secondsto control how often the data lock is refreshed. Better Messages*: Updated message handling to use Adventure API for full modern chat component support. Database Check*: Added a startup check to warn if your database schema fordataisLONGTEXTinstead of the recommendedMEDIUMBLOB.
Configuration Update: The plugin now features a Smart Auto-Updater. On startup, it will detect any missing configuration keys (like the new `sync-data` section) and safely append them to your existing `config.yml`. You do NOT need to reset your config.* Schema Optimization*: The plugin now supportsImportant Notes
LONGBLOBfor thedatacolumn, which is more efficient thanLONGTEXT. Automatic Migration*: A new check will run on startup. If you are using the oldLONGTEXTformat, the plugin will automatically attempt to migrate your table toLONGBLOBif the config optionauto-update-schemais set totrue(which is the default for updated configs). Manual*: If you prefer, you can manually runALTER TABLE player_data MODIFY COLUMN data LONGBLOB NULL;.2.0.2MC-Data-Bridge 2.0.2Dec 5, 2025 Release Notes
Version 2.0.2
This maintenance release focuses on API modernization, code cleanup, and continued stability improvements.
Adventure API:* Switched to the Adventure API (Improvements & Fixes
Component.text) for handling disconnect and kick messages, replacing legacy string formatting. Dependency Updates:* Updatedbungeecord-apito the latest1.21-R0.4. Safety Checks:* Added null checks to prevent errors when kicking players during data application failures. Legacy Data Compatibility:* Explicitly marked and documented legacy NBT and potion effect handling to ensure older data formats continue to load correctly without generating build warnings. Code Cleanup:* Removed various unused imports and cleaned up code. ---2.0.1MC-Data-Bridge 2.0.1Nov 7, 2025 Release Notes - MC Data Bridge
This is a landmark update, representing a complete architectural overhaul of MC Data Bridge to introduce robust, high-performance, cross-server data synchronization for BungeeCord and Velocity networks.2.0.1
Cross-Server Synchronization:* The plugin now fully supports synchronizing player data (inventory, health, XP, potion effects, etc.) across multiple servers connected via a BungeeCord or Velocity proxy. Database Locking System:* A sophisticated, atomic locking mechanism has been implemented to prevent all race conditions and data corruption. * When a player joins a server, the plugin acquires a lock on their data in the database. * This lock is continuously renewed via a "heartbeat" task while the player is online. * If a player switches servers, the new server waits for the old server to save and release the lock. * A configurableMajor New Features
lock-timeoutensures that if a server crashes, its locks will eventually expire and can be claimed by another server, preventing players from being permanently locked out. Proxy Integration:* The plugin now listens for a custommc-data-bridge:mainplugin message from the proxy. This message tells the server to immediately save a player's data when they are switching servers, ensuring data is persisted before they connect to the next server. Startup Self-Healing:* On startup, the plugin will now find and release any "orphaned" locks that were held by that same server before a crash or shutdown, ensuring a clean state.
`server-id` (Critical): A new, mandatory `server-id` has been added to `config.yml`. Each server connected to the same database must* have a unique ID for the locking system to function correctly. `lock-timeout`:* A new setting to control how long a lock is considered valid before it can be forcefully acquired by another server. The default is 60 seconds.Configuration & Setup
Minecraft Version:* This version is built for and compatible with MinecraftCompatibility
1.21.x. Platform Support: The plugin now requires the Paper API (for Spigot servers) and includes support for BungeeCord API and Velocity API*.
New Serialization Format: Item data is now serialized to Base64*, which is significantly more robust and reliable than the previous NBT-based string method. Backward Compatibility:* The new version can still read the old NBT-based item format, ensuring a smooth upgrade path for existing users. Old data will be converted to the new format the next time it is saved. Optimized Database Logic:* All database interactions have been rewritten to be more efficient and atomic, using HikariCP for best-in-class connection pooling.Stability & Performance
This is a major, breaking update.* It is a drop-in replacement, but its core logic is entirely new. Proxy Installation Required: For the new cross-server synchronization to work, you must install the same `mc-data-bridge-.jarImportant Notes for Upgrading
file into theplugins/` folder of your BungeeCord or Velocity proxy server. Configuration is Critical: You must* define a uniqueserver-idin yourconfig.ymlon every single one of your Spigot/Paper servers. Failure to do so will lead to data corruption in a multi-server environment.1.21.8.2MC-Data-Bridge 1.21.8.2Oct 18, 2025 Features * deps: A new script scripts/update_deps.sh has been added to automate the process of updating Maven dependencies. This script will check for the latest versions, update the pom.xml, and verify the build, which will streamline the development workflow. Refactoring * potion: The SerializablePotionEffect class has been updated to use the modern, key-based API for serializing and deserializing potion effect types. This change fixes the use of deprecated methods and makes the serialization more robust and future-proof. Chore * The project version has been bumped to 1.21.8.2.1.21.8.1mc-data-bridge-1.21.8.1Sep 6, 2025 MC Data Bridge
MC Data Bridge is a Spigot/Paper plugin designed to seamlessly synchronize player data across multiple Minecraft servers. This allows players to move between linked servers (e.g., a Towny server and a Resource server) and retain their health, hunger, experience, inventory, armor, and active potion effects.Features
Cross-Server Player Data Sync:* Synchronizes core player data including: * Health * Food Level & Saturation * Experience (Total XP, current XP, and Level) * Inventory Contents * Armor Contents * Active Potion Effects Configurable Database Connection:* Easily connect to your MySQL database. Flexible Synchronization Groups:* Create distinct synchronization groups by using different database credentials or table names for different sets of servers. For example, you can have one database for your "Towny" servers and another for your "vanilla" servers, ensuring data is synced only within those specific groups.Installation
1. Build the Plugin: * Navigate to the plugin's root directory in your terminal. * Runmvn clean packageto build the plugin. * The compiled JAR file (mc-data-bridge-1.21.8.1-shaded.jar) will be located in thetarget/directory. 2. Deploy to Servers: * Copy themc-data-bridge-1.21.8.1-shaded.jarfile into theplugins/folder of each PaperMC server you wish to synchronize.Configuration
Aconfig.ymlfile will be generated in theplugins/mc-data-bridge/folder after the first run (or you can create it manually). You must update this file with your MySQL database credentials.
`database.host`*: Your MySQL database host (e.g.,database: host: localhost port: 3306 database: minecraft username: user password: password debug: falselocalhost,127.0.0.1, a remote IP, or a [Docker named volume](https://docs.docker.com/storage/volumes/#create-and-manag… if your database is running in Docker). `database.port`*: The port your MySQL database is running on (default is3306). `database.database`*: The name of the database to use for player data. `database.username`*: The username for connecting to your database. `database.password`*: The password for the database user. `debug`*: Set totrueto enable verbose debugging messages in the server console. Set tofalsefor normal operation.Synchronizing Multiple Server Groups
To sync player data between specific groups of servers (e.g., a Towny server and a Towny resource server, separate from a Creative server), simply configure thedatabase.database(or even entirely differentdatabase.host,username,password) to match for the servers you want to link. Example: Towny Servers (Towny-Main, Towny-Resource):*
Creative Servers (Creative-Build, Creative-Minigame):*database: host: my_db_host port: 3306 database: towny_player_data # All Towny servers use this database username: towny_user password: towny_password debug: falsedatabase: host: my_db_host port: 3306 database: creative_player_data # All Creative servers use this database username: creative_user password: creative_password debug: falseUsage
1. Add the JAR: Place themc-data-bridge-1.21.8.1-shaded.jarfile into theplugins/folder of all your PaperMC servers. 2. Configure: Edit theconfig.ymlin each server'splugins/mc-data-bridge/folder with the appropriate database credentials for your desired synchronization groups. 3. Restart Servers: Restart your Minecraft server containers (or the servers themselves) to apply the plugin and configuration changes. 4. Enjoy! Players can now seamlessly switch between your linked servers, and their data will be synchronized automatically.Important Notes
This plugin requires a MySQL database* to function. Ensure your database server is accessible from your Minecraft servers. * The plugin will automatically create theplayer_datatable in your specified database if it doesn't already exist. * You might still see warnings about deprecated APIs during compilation. These are generally harmless and do not prevent the plugin from functioning.
Similar projects
Plugin →WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
LuckPerms
A permissions plugin/mod for Minecraft servers.
2.8MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta
SkinsRestorer
🎨 Ability to restore/change skins on servers! (Offline and Online Mode)
1.6MSueta
Universal TierTagger
Displays a players Tiers across the following Networks: MCTiers PVPTiers SubTiers TiersMC PVPHQ
1.1MSueta
WorldGuard
WorldGuard lets you and players guard areas of land against griefers and undesirables as well as tweak and disable various gameplay features of Minecraft.
960.5KSueta