📚 SMP-Reconnect Documentation
Welcome to the SMP-Reconnect documentation! This plugin is a lightweight auto-reconnect solution for Velocity proxies that keeps players bridged during server restarts and crashes. Below you will find a complete guide to installation, configuration, and troubleshooting.
Getting Started
SMP-Reconnect is designed to solve one critical problem: player loss during server restarts. When a backend server goes down, instead of kicking players to the lobby or disconnecting them, the plugin holds them on the proxy and automatically reconnects them when the server is back online.
Requirements
- Java 17 or higher
- Velocity Proxy 3.x+
- At least one backend server configured in Velocity
Key Benefits
- Zero player loss during scheduled restarts
- Async architecture — no proxy lag
- Smart detection — won't reconnect banned/kicked players
- Flexible routing — map servers to specific fallbacks
Installation
Step 1: Download
Download the latest SMP-Reconnect.jar from GitHub Releases or BuiltByBit.
Step 2: Install
- Stop your Velocity proxy (recommended but not required)
- Navigate to your Velocity
plugins/directory - Place the
SMP-Reconnect.jarfile in this directory - Start (or restart) your Velocity proxy
Step 3: Configure
After the first startup, SMP-Reconnect will generate a config.yml inside plugins/smp-reconnect/. Edit this file to customize the plugin behavior for your network.
Configuration Guide
The configuration file is located at plugins/smp-reconnect/config.yml. Below is a breakdown of every option:
Blacklisted Servers
Servers listed here will never trigger the reconnect logic. Use this for lobby servers, login servers, or any server where you want standard Velocity disconnect behavior.
# Servers that should NEVER trigger reconnect logic
blacklisted_servers:
- lobby
- login
- auth
Fallback Server Map
Define where players should wait while their original server restarts. If a player was on a server listed as a key, they will be sent to the corresponding fallback server to wait.
# Map source servers to specific fallback destinations
fallback_servers_map:
survival: lobby
skyblock: skyblock_lobby
creative: lobby
Example: If a player is on survival and it crashes, they will be sent to lobby and automatically reconnected to survival once it's back online.
Ping Settings
Controls how frequently the plugin checks if a downed server is accepting connections again.
# Frequency (in seconds) to check if a server is back online
ping_delay_seconds: 5
Recommendation: 5 seconds is a good default. Lower values mean faster reconnection but slightly more network activity. Higher values reduce overhead but delay reconnection.
Reconnecting Message
The message displayed to players while they are waiting to be reconnected. Supports Minecraft color codes including hex colors.
# What do the players see while waiting?
reconnecting_message: "&aThe server is still starting up! You will be connected shortly..."
Full Example Config
# SMP-Reconnect Configuration
# Plugin by ajdnikov
# Servers that should NEVER trigger reconnect logic
blacklisted_servers:
- lobby
- login
# Map source servers to specific fallback destinations
# Format: source_server: fallback_server
fallback_servers_map:
survival: lobby
skyblock: skyblock_lobby
# Frequency (in seconds) to check if a server is back online
ping_delay_seconds: 5
# What do the players see while waiting?
reconnecting_message: "&aThe server is still starting up! You will be connected shortly..."
How It Works
Understanding the reconnect flow helps you configure the plugin optimally:
Reconnect Flow
- Server goes down — A backend server crashes or restarts
- Player detection — The plugin detects all players who were on that server
- Kick analysis — Checks if the disconnect was a ban/kick (these players are NOT reconnected)
- Fallback routing — Players are sent to their mapped fallback server (or stay on proxy)
- Async pinging — The plugin begins pinging the downed server at the configured interval
- Notification — Players see the reconnecting message while waiting
- Reconnection — Once the server responds to pings, all waiting players are automatically sent back
Fail-Safe Protection
The plugin intelligently distinguishes between different types of disconnections:
- Server crash/restart: Player IS reconnected ✅
- Player kicked by admin: Player is NOT reconnected ❌
- Player banned: Player is NOT reconnected ❌
- Server on blacklist: Normal Velocity behavior, no reconnect ❌
Commands
| Command | Description | Permission |
|---|---|---|
/reconnectreload |
Reloads the config.yml without restarting the proxy. Changes take effect immediately. |
smpreconnect.admin |
/reconnectdebug |
Toggles verbose logging in the console. Useful for troubleshooting reconnect issues. | smpreconnect.admin |
Permissions
| Permission | Description | Default |
|---|---|---|
smpreconnect.admin |
Access to all administrative commands (/reconnectreload, /reconnectdebug) |
OP |
Fallback Mapping Guide
The fallback mapping system is the core of SMP-Reconnect's routing logic. Here are some common network setups:
Simple Network (1 Lobby)
# All servers fall back to the single lobby
fallback_servers_map:
survival: lobby
skyblock: lobby
creative: lobby
prison: lobby
Multi-Lobby Network
# Each gamemode has its own lobby
fallback_servers_map:
survival: survival_lobby
survival_nether: survival_lobby
survival_end: survival_lobby
skyblock: skyblock_lobby
skyblock_nether: skyblock_lobby
Hub Network
# Everything falls back to the hub
fallback_servers_map:
smp1: hub
smp2: hub
minigames: hub
# Don't reconnect from the hub itself
blacklisted_servers:
- hub
Important: Make sure your fallback servers are listed in blacklisted_servers so they don't trigger their own reconnect chains!
Troubleshooting
Q: Players are not being reconnected
A: Check the following:
- Ensure the server is NOT in the
blacklisted_serverslist - Verify the server has a fallback mapping in
fallback_servers_map - Enable debug mode with
/reconnectdebugand check the console logs - Make sure the server is actually accepting connections (check firewall, port binding)
Q: Players get reconnected even when kicked
A: This should not happen — the plugin has built-in kick/ban detection. If it does, enable debug mode and report the issue on our Discord with the console logs.
Q: Reconnect takes too long
A: Lower the ping_delay_seconds value in your config. The default is 5 seconds, but you can set it to 2-3 for faster detection.
Q: Config changes aren't applying
A: Use /reconnectreload to reload the config without restarting the proxy. Check for YAML syntax errors in your config file.
Q: Need more help?
A: Join our Discord server for support and bug reports, or open an issue on GitHub.