A master server for the game NetPanzer, implemented in Node.js. It manages active game servers, sends UDP echo challenges, and responds to clients with the server list.
-
Manages up to 64 active game servers.
-
Validates servers via heartbeat and removes inactive ones after 5 minutes.
-
Supports commands:
- heartbeat – updates or registers a server.
- list\gamename\netpanzer\final – returns the list of active servers.
-
Sends UDP Echo challenges to validate servers.
-
Allows remote shutdown via UDP, only from
127.0.0.1.
- Node.js >= 18
- npm (optional, for installing dependencies)
- Port 28900 open (TCP and UDP)
- Clone the repository:
mkdir masterservernp
git clone https://github.com/your-username/netpanzer-masterserver.git
cd masterservernp- Install dependencies (none required, but optional):
npm installnode masterserver.jsThe server will listen on TCP and UDP port 28900:
TCP listening on port 28900
UDP listening on port 28900
Send via UDP:
shutdown!
Only accepted from 127.0.0.1.
Game servers send:
heartbeat\port\<PORT>\protocol\<PROTOCOL>
PORT→ game server portPROTOCOL→ server protocol version
The masterserver:
- Updates server timestamp.
- Removes inactive servers.
- Sends UDP echo key for validation.
Clients can request the list of active servers:
list\gamename\netpanzer\final
The masterserver responds:
\ip\<IP>\port\<PORT>\ip\<IP2>\port\<PORT2>\final\
masterserver_full.js # Main masterserver file
PORT→ TCP/UDP port of masterserver (default: 28900)MAX_SERVERS→ Maximum registered servers (default: 64)SERVER_TIMEOUT→ Server inactivity timeout in milliseconds (default: 5 minutes)ADMIN_ADDR→ Authorized address for shutdown (default: 127.0.0.1)
The server logs:
- TCP/UDP connections
- Received heartbeats
- Inactive server removal
- Echo messages sent
- TCP errors
MIT License © [Your Name]