This project implements the GameSpy master server protocol that is fully compatible with SWAT4 multiplayer. Namely, it accepts heartbeat requests from game servers and allows players to browse these servers from the in-game server list.
Backed by this project and widely accepted in the community, the master server is available for use by players and server owners either with a patch or with a hosts file adjustment:
116.202.1.82 swat4.available.gamespy.com
116.202.1.82 swat4.master.gamespy.com
116.202.1.82 swat4.ms15.gamespy.com
GameSpy shut down its services in 2014, rendering multiplayer for a good share of games unusable. For SWAT4, however, it happened a year earlier.
In 2013, I launched swat4stats.com [GitHub]], a player statistics tracking service for SWAT4. The core feature set in swat4stats.com has always been about statistics and numbers. However, one of its extra features, the live server browser, has quickly become the most popular part of the service thanks to the GameSpy shutdown.
A couple of years later, with the help of the SWAT4 community and research articles published by Luigi Auriemma, I was able to reverse engineer the protocols used by the game, and then reimplement the master server functionality, returning servers back to the in-game server browser:
If for any reason you wish to run your own instance of this service you can do it using a docker container:
docker run --rm ghcr.io/sergeii/swat4master:latest
For other tags see container registry.
Alternatively you can download and run a server binary suitable for your platform from one of the releases.
To build the project from source you need Go 1.22+
go build -o swat4master cmd/swat4master/main.go
This project is licensed under the MIT License. See the LICENSE file for details.