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

  1. Player connects to the network. The proxy sends them to the AUTH server.
  2. On the AUTH server:
    • Premium player: Netty handshake verifies with Mojang. Auto-login. Instant redirect to lobby.
    • Cracked player: /register or /login. Redirect to lobby after auth.
  3. On the LOBBY server: session found in database. Auto-login, no prompt.
  4. Player switches to a GAME server: session found. Auto-login.
  5. 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.