Overview
JoinServer authenticates accounts and brokers transfers between GameServers
Last updated
JoinServer authenticates accounts and brokers transfers between GameServers
JoinServer validates account credentials against SQL Server and coordinates player movement between GameServers. ConnectServer points clients at a GameServer; that GameServer asks JoinServer whether the account may log in.
Authenticates account and password against the MEMB_INFO table
Tracks which account is online and on which GameServer
Issues transfer auth codes used when a player warps to a different GameServer
Sends a periodic UDP heartbeat to ConnectServer so CS knows JS is alive
Rejects GameServer connections whose remote IP is not whitelisted
JoinServer/
├── JoinServer.exe
├── JoinServer.ini
└── AllowableIpList.txtAll configuration lives in the JoinServer root. There is no Data/ subfolder.
Database, ports, authentication mode, license
GameServer IP whitelist
All four steps after license activation must succeed in order. Failure at any step leaves JoinServer idle; restart after fixing the cause.
SQL Server reachable via the configured ODBC DSN, with the MEMB_INFO schema and WZ_* stored procedures installed
ConnectServer reachable at ConnectServerAddress:ConnectServerPort by UDP - see ConnectServer
GameServer IPs listed in AllowableIpList.txt
"Could not connect to database" - verify the ODBC DSN exists on the machine running JoinServer and the credentials are valid
GameServer connects then drops immediately - its remote IP is not in AllowableIpList.txt
ConnectServer shows JoinServer offline - ConnectServerAddress or ConnectServerPort is wrong, or a firewall blocks the outbound UDP datagram from JoinServer to ConnectServer
Login works but map warp fails - the transfer auth code was not consumed within 30 seconds; the account is cleared by the once-per-second disconnect sweep and the player is kicked
JoinServer.ini - all runtime settings
AllowableIpList.txt - GameServer IP whitelist
ConnectServer - receives the heartbeat
DataServer - separate persistence path; does not talk to JoinServer
Last updated