swat4master

module
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2024 License: MIT

README

SWAT4 Master Server

GitHub go.mod Go version of a Go module ci codecov Go Report Card Codacy Badge Uptime

Description

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

Background

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.

drawing

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:

drawing

Usage

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.

Building from source

To build the project from source you need Go 1.21+

go build -o swat4master cmd/swat4master/main.go

This project is licensed under the MIT License. See the LICENSE file for details.

Directories

Path Synopsis
api
cmd
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL