A modular, high-performance, and resilient synchronization suite for Minecraft Fabric servers. Features real-time inventory sync, cross-server chat, and global player management.
A high-performance, fault-tolerant inventory synchronization mod for Minecraft Fabric servers.
| Module | Description |
|---|---|
| Inventory Sync | Core synchronization of inventory, ender chest, health, hunger, XP, and potion effects. Enabled by default. |
| Global Chat | Syncs chat messages across all servers via Redis pub/sub. Raw text format for compatibility with LuckPerms, Stylist, etc. |
| Global Player List | Maintains a global player count with heartbeat. Provides /glist command. |
| Session Lock | Prevents concurrent logins by locking player sessions during sync. Players are held in queue until their data is safely transferred. |
| Feature | Default | Description |
|---|---|---|
| Message Signing | ✅ Enabled | HMAC-SHA256 prevents message injection attacks |
| Auto-Generated Secret | ✅ | 32-byte cryptographic secret generated on first run |
| Replay Prevention | 30 sec | Messages older than 30 seconds are rejected |
| Payload Size Limits | 64KB | Prevents DoS via oversized messages |
| SSL/TLS Support | Optional | Encrypt Redis connections |
Magnus requires a PostgreSQL database and a Redis instance to function.
config/magnus.json.config/magnus.json:{
"postgresUrl": "jdbc:postgresql://your-db-host:5432/magnus",
"postgresUser": "your_user",
"postgresPass": "your_password",
"redisHost": "your-redis-host",
"redisPort": 6379,
"redisPass": null,
"serverName": "survival",
"enableInventorySync": true,
"enableGlobalChat": false,
"enableGlobalPlayerList": false,
"enableSessionLock": false,
"enableMessageSigning": true,
"messageSigningSecret": "auto-generated-on-first-run",
"redisSsl": false
}
[!IMPORTANT] Multi-Server Setup: Copy the
messageSigningSecretfrom the first server to all other servers. All servers must use the same secret.
| Option | Default | Description |
|---|---|---|
serverName |
"default" |
Unique identifier for this server (e.g., "survival", "lobby") |
enableInventorySync |
true |
Enable inventory/player data synchronization. Disable for lobby servers. |
enableGlobalChat |
false |
Enable cross-server chat synchronization |
enableGlobalPlayerList |
false |
Enable global player list and /glist command |
enableSessionLock |
false |
Enable session locking to prevent concurrent logins |
enableMessageSigning |
true |
Enable HMAC message signing (recommended) |
redisSsl |
false |
Enable SSL/TLS for Redis connections |
| Command | Description |
|---|---|
/glist |
Shows total player count and players grouped by server (requires enableGlobalPlayerList) |
For detailed flow diagrams and behavior documentation:
/glist
Conversation