VelocityLimboHandler
A smart limbo & queue handler for Velocity
Keeps your players connected, calm, and coming back even when backend servers crash.
✨ Why VelocityLimboHandler?
Per-Server Smart Queue – players only wait for the server they were on, not behind others stuck elsewhere
Queue Updates – automatic position notifications keep players informed
Protected Limbo – blocks unwanted commands to prevent bypasses
Maintenance Support – respects whitelist & bypass permissions
Authentication Ready – seamless integration with authentication plugins such as LibreLogin or nLogin
Full setup & advanced features in the Wiki.
Made to work with LOOHP's Limbo server, but any other server is also fine.
🧩 Compatibility
Proxy: Velocity (all recent versions)
MC Versions: All versions
License: MIT
🚀 Quick Install
- Grab the latest
.jarfrom Releases. - Drop it into your Velocity
pluginsfolder. - Restart the proxy (config files will generate).
- Adjust
config.yml+messages.ymlto your liking. - Restart once more — done!
⚙️ Config Highlights
# config.yml
limbo-name: "limbo" # The name of your limbo server
direct-connect-server: "lobby" # Where to send direct connections
task-interval: 3000 # Queue processing interval (milliseconds)
reconnect-batch-size: 8 # Maximum backend queues checked per processing run
queue-notify-interval: 30 # How often to tell players their position
queue-notify-batch-size: 64 # Maximum due notifications sent per dispatcher tick
disabled-commands: ["server","hub"] # Commands blocked in limbo
The batch limits smooth work across scheduler ticks. Increase them for faster catch-up on very large
networks, or lower them to cap short CPU bursts on constrained proxies.
Messages can be tweaked in
messages.yml so your players see exactly what you want.
🖧 Proxy Setup Example
[servers]
lobby = "127.0.0.1:25566"
limbo = "127.0.0.1:25569"
# Keep normal logins on Lobby. VLH intercepts a loss of the current backend itself.
try = ["lobby", "limbo"]
[advanced]
# Required for VLH to recover players after an ungraceful backend disconnect.
failover-on-unexpected-server-disconnect = true
[forced-hosts]
"pvp.example.com" = ["pvp", "limbo"]
"build.example.com" = ["build", "limbo"]
🛡️ Permissions & Integrations
- Players get queued automatically, no setup required.
- Commands blocked per config.
- LibreLogin support ensures login/auth flow isn’t broken.
- Maintenance plugins are respected (bypass logic included).
🤝 Contributing
Pull requests are welcome! Just follow the style already in place.
Check CONTRIBUTING.md for details.
📖 License
Licensed under MIT, free to use, modify, and distribute, including in closed-source projects. See LICENSE for details.
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.3MSueta
Chunky
Pre-generates chunks, quickly and efficiently
20.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta