Proxy Setup
Network Architecture
XLogin supports BungeeCord and Velocity networks with a role-based configuration. Install XLogin on every backend server and configure the proxy section accordingly.
+----------------------+
| BungeeCord/Velocity |
| Default server: auth |
+----------+-----------+
|
+----------------+----------------+
| | |
+-----v-----+ +-----v----+ +------v------+
| AUTH | | LOBBY | | GAME |
| /login | | Session | | Session |
| /register | | auto- | | auto-login |
| Premium | | login | | |
+------------+ +----------+ +-------------+Server Configurations
Auth Server
proxy:
enabled: true
role: AUTH
redirect-server: "lobby"
redirect-delay: 20
Lobby Server
proxy:
enabled: true
role: LOBBY
auth-server: "auth"
Game Servers (skyblock, minigames, etc.)
proxy:
enabled: true
role: GAME
auth-server: "auth"Authentication Flow
- Player connects to the network. The proxy sends them to the AUTH server.
- On the AUTH server:
- Premium player: Netty handshake verifies with Mojang. Auto-login. Instant redirect to lobby.
- Cracked player:
/registeror/login. Redirect to lobby after auth.
- On the LOBBY server: session found in database. Auto-login, no prompt.
- Player switches to a GAME server: session found. Auto-login.
- If a player reaches LOBBY/GAME without a valid session, they are sent back to the AUTH server.
Cross-Server Sessions
Sessions are stored in the shared XCore database (xlogin_sessions table). All servers connected to the same database see the same sessions. No Redis required — but if XCore's sync manager is enabled with Redis, session creation is also broadcast for instant propagation.