Seamlessly synchronize your EssentialsX player data with a MySQL database across single or multiple servers.
Supports Minecraft 1.21.4+, fully automatic, resilient, and configurable.
🔗 Website: secvers.org/plugins/essentials-mysql
🔗 GitHub: bunbunconmeow/EssentailsXMySQL
- 🌐 Multi-Server Network Sync – balances, homes, inventories, and profiles sync seamlessly across servers
- ⚡ Smart Auto-Sync – decides at join whether DB or Player data should be trusted
- 🛠️ Dedicated Workers:
PlayerDataWorker→ XP, health, hunger, inventories, potion effectsHomeDataWorker→ Homes synced instantly when set, deleted, or renamedEssentialsXDataWorker→ Balances, groups, and last-locations
- 🔒 Only-if-newer Guards – prevents overwriting fresh data with stale states
- 📡 Telemetry & Update Checker – optional, minimal data (plugin version, OS, server name)
✔ Real-time MySQL sync
✔ Multi-server awareness
✔ Async DB I/O, dirty-flagged flushing
✔ Safe imports/exports at join
✔ Debug-friendly logging & metrics
# EssentialsX MySQL Sync config.yml
# ──────────────────────────────
# Database Connection Settings
# ──────────────────────────────
mysql:
# Database hostname or IP
host: "localhost"
# Port number of the database
port: 3306
# Name of the database schema
database: "essentials"
# MySQL or MariaDB user credentials
user: "minecraft"
password: "yourPassword"
# SSL usage (true/false)
enableSSL: false
# Whether to use autocommit for statements
autoCommit: false
# ──────────────────────────────
# Server Identification
# ──────────────────────────────
# This name is stored with per-server profile data
# and must be unique across your network.
serverName: "default"
# ──────────────────────────────
# Telemetry
# ──────────────────────────────
# We only collect minimal info (plugin version, OS, server name).
telemetry:
enabled: true # set to false to opt-out
send_interval_seconds: 3600 # how often telemetry pings are sent
# ──────────────────────────────
# Update Checker
# ──────────────────────────────
checkUpdate: true
# ──────────────────────────────
# Worker Settings
# ──────────────────────────────
playerdata: #experimantal
enabled: false
flush_interval_seconds: 20
homes:
# How often homes are flushed to DB
flush_interval_seconds: 20
# Debounce delay in ticks after sethome/delhome/renamehome before writing
debounce_ticks: 10
essx:
# If true, this server writes global balances back to DB.
# If false, balances are imported from DB but never exported.
balance_write_enabled: true
# How often EssentialsX profile data (balance, group, last location) is flushed
flush_interval_seconds: 20
#experimantal do not enable only for testing
dupeProtection:
enabled: false
action: "LOG"
auditLog: true
suppressMsAfterImport: 1500
rescanSeconds: 60
embedUidForShulkersOnly: true
cleanupOldUidsOnStart: true