A plugin for Velocity that reconnects players to the last server they were playing on
- Automatic reconnection to the last server on player login
- Configurable messages for reconnect success and server unavailable
- Multiple storage backends: YAML, SQLite, MySQL, MariaDB, PostgreSQL, LuckPerms
- Optional per-server permission (
velocity.reconnect.<servername>) - Server blacklist to prevent reconnection to specific servers
- Optional LiteBans integration to prevent reconnecting banned players
- Optional fallback prevention (block redirect to fallback server when kicked)
- reload command to reload configuration without restarting the proxy
| Command | Description |
|---|---|
| /vreconnect reload | Reloads the plugin configuration |
- reload: requires permission
velocity.reconnect.reload(default: op)- Works in-game and from the proxy console
- Java 21 (LTS)
- Velocity proxy (tested with Velocity 3.x)
From the project root, run:
./gradlew buildThe plugin JAR will be generated at:
build/libs/SimpleReconnect-1.0.jar
- Copy the built JAR to your Velocity server
pluginsfolder - Start or restart the proxy
- The
config.ymlfile will be created automatically inplugins/reconnect/if it does not exist
Example configuration (defaults):
# For debugging purposes, recommended to disable
debug: false
# Should we check for the latest version?
checkUpdates: true
# Send players a message when they are reconnected
messageOnReconnect: true
reconnectMessage:
- "<gray>You were reconnected to <white>%server%</white>."
# Send a message when their previous server isn't available
notAvailable: true
notAvailableMessage:
- "<gray>Unable to reconnect you to your last server."
# Require velocity.reconnect.<servername> permission per server
perServerPermission: false
# Servers that players cannot reconnect to
blacklist: []
# Prevent connection to fallback servers when kicked
preventFallback: false
preventFallbackMessage: []
# LiteBans hook - prevents banned players from reconnecting to banned servers
liteBansHook: false
storage:
method: "yaml"
data:
address: "localhost:3306"
database: "reconnect.db"
username: "root"
password: "1234"- debug: Enable debug logging
- checkUpdates: Check for new versions on startup; admins with
velocity.reconnect.adminget update notifications - messageOnReconnect / reconnectMessage: Message shown when player is reconnected. Placeholders:
%server%,%player% - notAvailable / notAvailableMessage: Message when the last server is offline or unreachable
- perServerPermission: If
true, player needsvelocity.reconnect.<servername>to reconnect to each server - blacklist: List of server names where reconnection is never allowed
- preventFallback / preventFallbackMessage: When kicked, prevent redirect to fallback server (if not on blacklist)
- liteBansHook: Integrate with LiteBans to block reconnection to servers where the player is banned
- storage.method: Storage backend. Options:
yaml,sqlite,mysql,mariadb,postgresql,luckperms - storage.data: Connection settings for database backends. For SQLite/YAML,
databaseis the file path
In the config.yml, there are different storage options. If you don't need your
own plugins to interact with this one, we recommend you keep the method set as the default
option (yaml).
storage:
method: "yaml"
# The below is only needed if you are using MySQL
data:
address: localhost
database: reconnect
username: root
password: ''To change the method, alter the method key. Current options are:
yaml- Local .yml filesqlite- Local SQL databasemysql- Local or remote SQL database
The data section is for if you are using the mysql option for method.
address- The Address of the SQL databasedatabase- The name of the databaseusername- Username for the SQL databasepassword- Password for the SQL database
- When using a forced host, the plugin does not override the initial server choice
- Storage location for YAML:
plugins/reconnect/data.yml - For LuckPerms storage, the last server is stored as user metadata
Distributed under the MIT License
