{"id":165594,"date":"2026-06-09T20:54:03","date_gmt":"2026-06-09T17:54:03","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/"},"modified":"2026-06-09T20:54:03","modified_gmt":"2026-06-09T17:54:03","slug":"velocityfailover","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/","title":{"rendered":"VelocityFailover"},"content":{"rendered":"<p># VelocityFailover<\/p>\n<p>A lightweight Velocity proxy plugin that automatically handles server crashes and restarts \u2014 no player left behind.<\/p>\n<p>## What does it do?<\/p>\n<p>When a backend server goes down (crash, restart, `\/stop`), VelocityFailover:<\/p>\n<p>1. **Instantly detects** the server is down<br \/>\n2. **Moves affected players** to a limbo server<br \/>\n3. **Monitors** the downed server for recovery<br \/>\n4. **Automatically reconnects** players back to their original server once it&#8217;s ready<br \/>\n5. **Blocks** other players from joining unavailable servers with a friendly message<\/p>\n<p>All of this happens seamlessly \u2014 players see a short message, wait on limbo, and get moved back automatically.<\/p>\n<p>## Why VelocityFailover?<\/p>\n<p>&#8211; **Zero external dependencies** \u2014 only the Velocity API, nothing else<br \/>\n&#8211; **Extremely lightweight** \u2014 no constant heartbeat pinging all servers. Recovery pings run *only* on servers that are actually down<br \/>\n&#8211; **Instant detection** \u2014 uses Velocity&#8217;s kick events instead of slow polling intervals. Players are redirected in milliseconds, not seconds<br \/>\n&#8211; **Gradual reconnection** \u2014 players are transferred back one at a time to avoid overloading a freshly started server<br \/>\n&#8211; **Smart kick detection** \u2014 distinguishes between server crashes and normal kicks (bans, anticheat, etc.). A banned player won&#8217;t end up on limbo<br \/>\n&#8211; **Connection blocking** \u2014 players trying to manually join a recovering server get a message instead of being thrown into limbo<br \/>\n&#8211; **No Paper plugin needed** \u2014 runs entirely on the Velocity proxy side<\/p>\n<p>## Requirements<\/p>\n<p>&#8211; Velocity 3.4.0+<br \/>\n&#8211; Java 17+<br \/>\n&#8211; A limbo server registered in `velocity.toml` (e.g. PicoLimbo or an empty Paper server)<\/p>\n<p>## Installation<\/p>\n<p>1. Download the latest `.jar` from [Releases](..\/..\/releases)<br \/>\n2. Place it in your Velocity `plugins\/` folder<br \/>\n3. Start the proxy \u2014 a default `config.yml` will be generated in `plugins\/velocityfailover\/`<br \/>\n4. Edit `config.yml` to match your server setup<br \/>\n5. Restart the proxy or use \/failoverreload<\/p>\n<p>## Commands and permissions<br \/>\n\/failoverreload &#8211; reloads config (permission: velocityfailover.reload) <\/p>\n<p>## Configuration<\/p>\n<p>&#8220;`yaml<br \/>\n# Name of the limbo server registered in velocity.toml<br \/>\nlimbo-server: &#8220;limbo&#8221;<\/p>\n<p># Server groups to monitor.<br \/>\n# Groups are for organization only \u2014 each server is tracked individually.<br \/>\ngroups:<br \/>\n  lobby:<br \/>\n    servers:<br \/>\n      &#8211; &#8220;lobby1&#8221;<br \/>\n      &#8211; &#8220;lobby2&#8221;<br \/>\n  spawn:<br \/>\n    servers:<br \/>\n      &#8211; &#8220;spawn1&#8221;<br \/>\n      &#8211; &#8220;spawn2&#8221;<\/p>\n<p># Recovery monitor settings<br \/>\nrecovery:<br \/>\n  ping-interval-ms: 2000       # How often to ping downed servers<br \/>\n  pings-to-ready: 3            # Successful pings in a row before recovery starts<br \/>\n  grace-period-ms: 5000        # Extra wait after pings pass (lets plugins load)<br \/>\n  transfer-interval-ms: 50     # Delay between each player transfer<br \/>\n  ping-timeout-ms: 2000        # Timeout for a single ping<\/p>\n<p># Kick reasons that indicate a server shutdown (checked via String.contains)<br \/>\n# If a player is kicked with one of these reasons, the server will be marked as offline<br \/>\nshutdown-keywords:<br \/>\n  &#8211; &#8220;Server closed&#8221;<br \/>\n  &#8211; &#8220;Server shutting down&#8221;<\/p>\n<p># Messages sent to players (MiniMessage format)<br \/>\nmessages:<br \/>\n  sent-to-limbo: &#8220;<red>The server is temporarily unavailable. You will be moved back automatically when it returns.&#8221;<br \/>\n  reconnecting: &#8220;<green>The server is back online! Reconnecting&#8230;&#8221;<br \/>\n  connection-blocked: &#8220;<red>This server is currently unavailable. Please try again in a moment.&#8221;<br \/>\n&#8220;`<\/p>\n<p>### Important notes<\/p>\n<p>&#8211; The **limbo server must not be listed** in any monitored group \u2014 it is always treated as available<br \/>\n&#8211; Server names in the config must match exactly what is in your `velocity.toml`<br \/>\n&#8211; Messages support MiniMessage formatting<\/p>\n<p>## How it works<\/p>\n<p>&#8220;`<br \/>\nPlayer on spawn2 \u2500\u2500> spawn2 crashes<br \/>\n                          \u2502<br \/>\n          KickListener catches the crash kick<br \/>\n                          \u2502<br \/>\n          Player redirected to limbo instantly<br \/>\n                          \u2502<br \/>\n          RecoveryMonitor starts pinging spawn2<br \/>\n                          \u2502<br \/>\n          3 successful pings \u2500\u2500> 5s grace period<br \/>\n                          \u2502<br \/>\n          Players transferred back one by one<br \/>\n                          \u2502<br \/>\n          spawn2 marked as ONLINE again<br \/>\n&#8220;`<\/p>\n<p>## FAQ<\/p>\n<p>**Q: What if a player disconnects while waiting on limbo?**<br \/>\nThey are removed from the reconnect queue. When they rejoin, your existing routing plugin handles them normally.<\/p>\n<p>**Q: What if the server crashes again during player transfers?**<br \/>\nThe plugin handles this gracefully. Already-transferred players get kicked back to limbo. Remaining players stay on limbo. Recovery restarts from scratch.<\/p>\n<p>**Q: Does this replace my hub plugin?**<br \/>\nNo. This only handles crashes\/restarts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lightweight Velocity proxy plugin that automatically handles server crashes and restarts \u2014 no player left behind.<\/p>\n","protected":false},"featured_media":165595,"template":"","meta":{"_minecraft_slug":"velocityfailover","_minecraft_project_id":"zLB8BIPd","_minecraft_author":"blixy77","_minecraft_license":"MIT","_minecraft_downloads":21,"_minecraft_follows":1,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"velocityfailover.zip","_minecraft_size_bytes":74900,"_minecraft_version_count":3,"_minecraft_updated_at":"2026-05-15T22:27:53.779930Z","_minecraft_date_created":"2026-04-03T22:37:21.372099Z","_minecraft_date_modified":"2026-04-04T22:30:12.082037Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/velocityfailover","_minecraft_icon_attachment_id":165595,"_minecraft_imported_at":"2026-06-09T17:54:03+00:00","_minecraft_import_hash":"ff7a29bde5384e9f4dfc89aee75cbe4a","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[126,123,869,92,985],"mod_loader":[986],"minecraft_version":[54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167],"class_list":["post-165594","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-management","mod_category-technology","mod_category-transportation","mod_category-utility","mod_category-velocity","mod_loader-velocity","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>VelocityFailover - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VelocityFailover - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A lightweight Velocity proxy plugin that automatically handles server crashes and restarts \u2014 no player left behind.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/\",\"name\":\"VelocityFailover - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/velocityfailover-icon-c8d0b18c24407f7a1b672721c869625fa03194c8_96.webp\",\"datePublished\":\"2026-06-09T17:54:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/velocityfailover-icon-c8d0b18c24407f7a1b672721c869625fa03194c8_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/velocityfailover-icon-c8d0b18c24407f7a1b672721c869625fa03194c8_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/velocityfailover\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"VelocityFailover\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"VelocityFailover - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/","og_locale":"en_US","og_type":"article","og_title":"VelocityFailover - Minecraft","og_description":"A lightweight Velocity proxy plugin that automatically handles server crashes and restarts \u2014 no player left behind.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/","name":"VelocityFailover - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/velocityfailover-icon-c8d0b18c24407f7a1b672721c869625fa03194c8_96.webp","datePublished":"2026-06-09T17:54:03+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/velocityfailover-icon-c8d0b18c24407f7a1b672721c869625fa03194c8_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/velocityfailover-icon-c8d0b18c24407f7a1b672721c869625fa03194c8_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/velocityfailover\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"VelocityFailover"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/165594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/165595"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=165594"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=165594"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=165594"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=165594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}