1.0.0
Compatibility
Changes
LobbyGuard
A simple, reliable way to survive lobby restarts without queue confusion or players getting stuck on the wrong server.
When your main lobby server crashes or restarts, LobbyGuard automatically redirects players who were on it to a backup server. As soon as lobby comes back online, the plugin sends those same players back — without touching anyone who ended up on the backup server on their own.
Features
- Automatic redirect from the main server to a backup server on kick/disconnect
- Automatic return to the main server as soon as it's back online
- Never confuses evacuated players with players who joined the backup server by themselves
- Lightweight TOML config — just server names and ping intervals
- Debug mode for verbose logging
How it works
- A player gets kicked from lobby (e.g. the server crashed) — the plugin intercepts this and redirects them to the backup server, marking them as evacuated.
- The plugin periodically pings lobby. As soon as it responds again, every evacuated player still online and still on the backup server is automatically sent back to lobby.
- Players who ended up on the backup server through any other means are never touched by the plugin.
Configuration
After the first run, plugins/lobbyguard/config.toml will look like this:
lobby-server = "lobby"
sur-server = "sur"
check-interval-seconds = 5
ping-timeout-seconds = 3
debug = false
lobby-server/sur-server— server names exactly as invelocity.tomlcheck-interval-seconds— how often to check whether lobby is back onlineping-timeout-seconds— how long to wait for a ping response before treating the server as offlinedebug— verbose console logging
Requirements
- Velocity 3.4.0+
- Java 21+
Limitations
- The list of evacuated players is kept in memory and does not survive a restart of the Velocity proxy itself.
- If the configured servers aren't found in
velocity.toml, a warning is logged and the action is skipped.
Source code
Source code is available on request from the author.
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:gCOZChVC:5cl5xhB6"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:gCOZChVC:5cl5xhB6"
}
