Overview
- Platforms
- Velocity, Paper, Folia
- Minecraft
- Velocity 3.3+; optional companion on Spigot, Paper, Folia or Purpur 1.21+
- Java
- 17 / 21
- Required
- None
- Optional
- VelorFailoverSpawn
Crash-aware fallback for Velocity networks, plus config-driven switch commands.
How it decides #
When a player is kicked from a backend server (or cannot connect to it), Velocity fires the same event for a real crash and for a moderator's kick, a ban or an anticheat removal. VelorFailover does not guess from that event. It pings the server:
- The server answers: nothing happens, Velocity handles the kick exactly as if VelorFailover was not installed.
- The ping fails (crash, hang, refused connection): the fallback server is pinged too, and if it answers the player is moved there.
If the fallback is also down, nothing is redirected and Velocity's normal handling applies.
Moved players wait for the watched server. Every health-check-interval-seconds it is pinged; once it has answered return-stability-checks times in a row, waiting players are sent back at most return-rate-per-second per second. A player who leaves, goes somewhere else on their own, or cannot be sent back for return-give-up-minutes is forgotten.
Planned stops and restarts: a server that is stopped on purpose kicks its players while it still answers pings for a moment, so a ping cannot tell that from a moderator's kick. VelorFailover therefore also reads the kick message: if it contains one of the texts in planned-shutdown-messages (by default the ones Paper and Spigot use: "Server closed", "Server is restarting", "Restarting"), the players are moved to the fallback and sent back when the server is up again, to the position they were in (nothing is teleported unless you set teleport-to-spawn-after-planned-stop). Add the message your own stop or restart uses; an empty list turns this off. After a planned stop the server is first seen going down, or planned-return-grace-seconds pass, before anyone is sent back, so a server that is still shutting down is not mistaken for one that is back.
Installation #
- Put
VelorFailover.jarin the proxy'splugins/folder and start the proxy. - Edit
plugins/velorfailover/config.yml(server names must matchvelocity.toml) and run/velorfailover reload. - Optional: put
VelorFailoverSpawn.jaron every backend server that should teleport returning players to spawn.
Requirements: Velocity 3.3 or newer, Java 17 or newer. VelorFailoverSpawn: Spigot, Paper, Folia or Purpur 1.21 or newer, Java 21.