Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
CoordsSync
Multi-server player coordinate synchronization for Minecraft Spigot/Bukkit servers
Overview
CoordsSync is a lightweight plugin that keeps player coordinates synchronized across multiple Spigot/Bukkit servers using Redis. With automatic MySQL fallback, your player data is never lost even if Redis goes down.
Features
✨ Real-time Synchronization - Player coordinates instantly synced across servers via Redis
📍 Teleport on Join - Auto-teleport players to their last location
💾 Automatic Backup - MySQL fallback when Redis is unavailable
🔔 Sync Notifications - Optional chat alerts for coordinate updates
⚙️ Easy Configuration - Simple YAML setup for Redis and MySQL
🛠️ Admin Commands - Built-in reload and status commands
🔄 Async Operations - Non-blocking database calls prevent server lag
Requirements
- Minecraft: 1.21+
- Server Software: Paper, Spigot, CraftBukkit, or compatible
- Java: 21 or higher
- Redis: 5.0+ (primary database)
- MySQL: 5.7+ (optional fallback, recommended)
Quick Setup
1. Download & Install
Place the JAR in your plugins/ folder and restart the server.
2. Configure Redis
Edit plugins/CoordsSync/config.yml:
redis:
host: localhost
port: 6379
password: ""
3. Configure MySQL (Optional but Recommended)
database:
type: mysql
enabled: true
host: localhost
port: 3306
database: coordssync
username: root
password: ""
pool:
max-connections: 10
min-idle: 2
connection-timeout: 5000
4. Enable Features
features:
teleport-on-join: true
periodic-save: true
sync-alerts: true
use-mysql-fallback: true # Enable MySQL backup
5. Restart Server
Commands
/coordssync reload- Reload configuration/coordssync status- View database status
Permission: coordssync.admin (OP only by default)
How It Works
- Primary: Saves to Redis (fast, real-time sync)
- Fallback: Automatically uses MySQL if Redis fails
- Redundancy: Data saved to both databases when available
- Recovery: Retrieves from MySQL if Redis is unavailable
Configuration
Redis Section
host- Redis server IP/hostnameport- Redis port (default: 6379)password- Redis authentication (leave empty if none)
MySQL Section
host- MySQL server IP/hostnameport- MySQL port (default: 3306)database- Database name (will be created if needed)username- MySQL userpassword- MySQL passwordpool.max-connections- Connection pool sizepool.min-idle- Minimum idle connectionspool.connection-timeout- Connection timeout in ms
Features
teleport-on-join- Teleport players to saved locationperiodic-save- Auto-save every 30 secondssync-alerts- Show sync notificationsuse-mysql-fallback- Enable MySQL fallback
Multi-Server Network Example
Server 1 (Survival 1):
server-id: suvival-1
redis:
host: 192.168.1.100
database:
host: 192.168.1.100
Server 2 (Survival 2):
server-id: survival-2
redis:
host: 192.168.1.100
database:
host: 192.168.1.100
Both servers connect to the same Redis and MySQL, coordinates are shared automatically.
Performance
- ⚡ Async operations prevent server lag
- 🔄 Connection pooling for efficient resource use
- 📊 Configurable save intervals
- 💨 Throttled move events (5 second minimum)
Troubleshooting
Redis connection fails
- Check Redis is running:
redis-cli ping - Verify host/port in config
- Check firewall allows Redis port
MySQL connection fails
- Verify MySQL is running
- Check credentials in config
- Ensure database user has proper permissions
- Run schema.sql to create tables
Coordinates not syncing
- Check
/coordssync status - Verify at least one database is connected
- Check server logs for errors
- Reload with
/coordssync reload
Support
Issues, suggestions, or questions? Visit the GitHub repository.
Changelog
v1.1.0 - MySQL Fallback Release
- Added MySQL database as fallback to Redis
- HikariCP connection pooling
- Automatic fallback on Redis failure
- Database status monitoring
v1.0.0 - Initial Release
- Redis coordinate synchronization
- Teleport on join
- Admin commands


