2.1.0
Compatibility
Changes
ServerSwitch 2.1.0
Summary
ServerSwitch 2.1.0 is a major feature release with 33 new modules for routing, security, player experience, analytics, integrations, and network operations — across Spigot/Paper, BungeeCord, and Velocity.
✨ New Features
Network & Routing
- Maintenance Mode — Put individual servers into maintenance; blocks joins and proxy switches
- Player Affinity Routing — Remembers preferred servers per player in the database
- Geographic Routing — Region-based server mapping (EU/US/etc.)
- Fallback Chain — Automatic redirect when a target server is unavailable
- Scheduled Server Opens — Time- and day-based server access windows
Security & Anti-Abuse
- VPN/Proxy Detection — Block suspicious IP prefixes
- Session Fingerprinting — Validates IP consistency across proxy and backend
- Switch Lock — Temporary switch ban after kicks or abuse
- Staff Alert Dashboard — Live staff notifications for security events
- IP Reputation Score — Tracks and blocks high-risk IPs
Player Experience
- Switch GUI (
/servergui) — Visual server selector fromserver-groups - Party Sync (
/party) — Create parties and sync group switches - Reconnect Memory — Stores last server for crash/disconnect recovery
- Switch Effects — Configurable sound + title on server join
- Queue Display — Shows position in the priority queue
Admin & Operations
- Web Dashboard — Built-in HTTP dashboard on port 8765
- Discord Integration — Webhook events for joins and security alerts
- Health Checks — Server heartbeat tracking
- Auto-Scaling Hooks — Webhook triggers on high load
- Config Profiles — Save/load named configuration profiles
Integrations
- LuckPerms Sync — Permission-based server access checks
- PlaceholderAPI Hook — Optional placeholder support (if installed)
- Redis Pub/Sub — Cross-proxy event broadcasting
- Economy Hook — Optional Vault-based switch fees
Analytics
- Heatmap — Switch activity by hour and day of week
- Churn Detection — Flags players who disconnect shortly after switching
- Popularity Ranking — Top servers by switch count
- Export API — Token-protected JSON export endpoint
- A/B Routing — Percentage-based routing experiments
Infrastructure
- Redis Tickets — Optional Redis-backed proxy join tickets with TTL
- Cluster Mode — Multi-proxy cluster ID support
- Remote Feature Flags — Poll remote URL to toggle features
- Audit Replay — Timeline view of player audit logs
🛠️ New Commands
| Command | Description |
|---|---|
/servergui |
Open server switch GUI |
/party create|invite|list |
Party sync commands |
/ssp maintenance <on|off> <server> |
Toggle maintenance mode |
/ssp profile <load|save> <name> |
Manage config profiles |
/ssp replay <player> [limit] |
Audit replay timeline |
/ssp heatmap |
View switch heatmap |
/ssp popular [limit] |
Top servers by popularity |
🔧 Improvements
- Feature registry expanded from 14 → 47 modules
- BungeeCord proxy bridge for maintenance mode and fallback chains
- Version bumped to 2.1.0 across all platforms
- Config version updated to
2.1.0with full v2.1 feature blocks
📋 Configuration
All new features are under features.<name>.enabled in config.yml. Most v2.1 features default to enabled where safe; infrastructure features (Redis, Web Dashboard, Export API, Remote Flags) default to disabled.
⚠️ Notes
- Web Dashboard and Export API bind to local ports — configure firewalls accordingly
- Redis features require a reachable Redis instance
- PlaceholderAPI and Vault are optional soft dependencies (reflection-based)
- Existing
usage.datcounters from 2.0.x remain compatible
Full plugin package includes Spigot/Paper, BungeeCord, and Velocity builds.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:nLpQDoDu:Ufvqs15U"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:nLpQDoDu:Ufvqs15U"
}

