Play on QuakeJS servers with a native ioquake3 client.
QuakeJS-Proxy is a Golang proxy server that relays UDP packets from an ioquake3 client to a QuakeJS WebSocket server. It allows you to connect to QuakeJS servers using a native ioquake3 client, enabling the use of custom keybindings, configurations, and more.
- UDP to WebSocket Proxy: Transforms UDP packets from the ioquake3 client into WebSocket messages for QuakeJS servers.
- Customizable Logging: Options to log packet exchanges and new connections for debugging.
- Hexdump Support: Print hex dumps of packets for advanced debugging.
Clone the repository and build the project:
$ go build cmd/main.goThe project has been tested with Go 1.15 and should work with all later versions.
Run the proxy with the following command:
$ ./quakejs-proxy --ws <quakejs-server-uri>- --ws(or- -w): The URI of the QuakeJS server (e.g.,- quakejs.com:27960).
- --listen(or- -l): Specify the IP address to listen on. Defaults to all available interfaces.
- --log-exchanges: Log every packet exchange through the proxy (useful for debugging).
- --hexdump: Print a hex dump of every packet (useful for debugging).
- --log-new-conn: Enable or disable logging of new connections (default:- true).
$ ./quakejs-proxy --ws quakejs.com:27960 --listen 0.0.0.0:27960 --log-exchanges --hexdumpThis will:
- Connect to the QuakeJS server at quakejs.com:27960.
- Listen for UDP connections on 0.0.0.0:27960.
- Log all packet exchanges and print hex dumps of packets.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is open-source and available under the MIT License.