Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Only players who come through your proxy can join your backend servers. Anyone who connects to a backend server directly - bypassing BungeeCord or Velocity - is kicked before they get in.
ServerSwitchLite is the free, lightweight version of ServerSwitch: just the proxy-join protection, no extra modules, no license key, no limits. A simple alternative to OnlyProxyJoin that works with player names and a shared database instead of IP lists.
Why
Backend servers behind a proxy run in offline mode. If their port is reachable, anyone can join them directly with any name - including your staff's. ServerSwitchLite closes that hole, even when you cannot firewall the ports.
How it works
- Your proxy sends a player to a server. ServerSwitchLite on the proxy writes a short-lived ticket (player + server) into MySQL.
- The backend server checks for that ticket when the player logs in. Ticket found: the player joins and the ticket is used up. No ticket: the player is kicked and staff is notified.
- Tickets nobody used expire after a few seconds.
The check runs off the main thread, so a slow database never lags your server. If the database is unreachable, nobody gets in unchecked.
Features
- One jar for everything: Spigot, Paper and Purpur 1.8 – 26.3, BungeeCord/Waterfall and Velocity
- Bypass IPs, and a switch to turn the check off for maintenance
- Staff notification on direct join attempts (
serverswitch.notify) - Keep, customise or disable join/leave messages
reloadandstatuscommands on every platform- Optional auto-update from Modrinth
- Same database table as ServerSwitch Pro - upgrade any time
Requirements
- MySQL or MariaDB, reachable from the proxy and from every backend server
- ServerSwitchLite on the proxy and on every backend server
- Velocity only: JSMySQLFix - Velocity ships no MySQL driver
- Java 8 or newer
Setup
- Put the jar on your proxy and on every backend server (on Velocity also JSMySQLFix).
- Start once, then enter the same database in each config:
config.yml(backend),bungeeconfig.yml(BungeeCord) orvelocityconfig.yml(Velocity). - On each backend server set
server.servernameto the name of that server in your proxy config (servers:in BungeeCord,[servers]in velocity.toml). - Restart everything.
Commands and permissions
/serverswitch reload|status(alias/ss) - backend server/ssb reload|status- BungeeCord/ssv reload|status- Velocityserverswitch.admin- use the commands (default: op)serverswitch.notify- get told about direct join attempts (default: op)
Updates
- Update check (on by default): on startup the plugin asks Modrinth (api.modrinth.com) whether a newer release exists and writes a notice to the console. Nothing is downloaded. Only the plugin version is sent. Turn it off with
settings.update-check: false. - Manual update:
/serverswitchlite update(proxies:/ssb update,/ssv update) shows the new version, file name, size and when it will be installed. Only/serverswitchlite update confirmdownloads exactly that file from Modrinth and checks it against Modrinth's SHA-512 checksum. - Automatic updates (off by default): new releases are downloaded and installed automatically only if you set
settings.auto-update: trueyourself.
Need more?
ServerSwitch adds rate limiting, cooldowns, statistics, audit logs, webhooks, smart routing, maintenance mode and much more.
Support: Discord


