Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hyperxpro/sourceenginequerycacher

Source Engine Query Cacher
https://github.com/hyperxpro/sourceenginequerycacher

a2s a2s-info a2s-packets query-cacher source-engine

Last synced: 2 months ago
JSON representation

Source Engine Query Cacher

Awesome Lists containing this project

README

        

# Source Engine Query Cacher
![Downloads](
https://img.shields.io/github/downloads/hyperxpro/SourceEngineQueryCacher/total)

High-Performance Source Engine Query Cacher for caching and responding A2S_INFO and A2S_PLAYER packets.


Features:


  1. Built on top of Netty.

  2. Uses Direct Buffers to minimize memory copy and garbage creation in JVM.

  3. Truely Asynchronous.

  4. Uses native Epoll Transport.

  5. In-Memory Cache for storing A2S_PLAYER challenge codes.

  6. Multi-threaded with configurable thread count for maximum performance

  7. Highly configurable using Configuration file or Process arguments.

## Requirements:
Java 11 and Linux Kernel 3.9+.

## How to run:
1. [Download](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/what-is-corretto-11.html) and Install Java 11.
2. Download Source Engine Query Cacher Binary.
3. Execute the following command: `java -jar SourceEngineQueryCacher-1.6.6.jar`
4. Source Engine Query Cacher will start and display 'Server Started on Socket: IP:PORT'.
5. Configure IPTables for routing Query Packets and everything is done.

## Redirect Query Packets to Query Cacher in Linux using IPTables
```
iptables -t nat -A PREROUTING -p udp --dport 27015 --match string --algo kmp --hex-string '|FFFFFFFF54|' -j REDIRECT --to-ports 9110
iptables -t nat -A PREROUTING -p udp --dport 27015 --match string --algo kmp --hex-string '|FFFFFFFF55|' -j REDIRECT --to-ports 9110
iptables -t nat -A PREROUTING -p udp --dport 27015 --match string --algo kmp --hex-string '|FFFFFFFF41|' -j REDIRECT --to-ports 9110
```
## Configuration
### Configuration File
Execute the following command to load configuration file: `java -jar SourceEngineQueryCacher-1.6.6.jar -c Config.conf
```
Threads: Number of Threads
StatsPPS: Enable Packets per Second Stats
StatsbPS: Enable Bits per Second Stats
GameUpdateInterval: Game Server Update rate in Milliseconds
GameUpdateSocketTimeout: Game Server Update Socket Timeout in Milliseconds
ChallengeCodeTTL: Maximum Validity of Challenge Code in Milliseconds
LocalServerIPAddress: IP Address on which Cacher Server will bind and listen
LocalServerPort: Port on which Cacher Server will bind and listen
GameServerIPAddress: Game Server IP Address
GameServerPort: Game Server Port
ReceiveBufferSize: Server Receive Buffer Size
SendBufferSize: Server Send Buffer Size
```
### Process Arguments
Example: Execute the following command to pass Process Arguments: `java -jar SourceEngineQueryCacher-1.6.6.jar -bind 192.168.1.100 -port 27015`
```
-b,--bpsStats Enable Bits per Second Stats
-bind Local Server IP Address on which Cacher Server will bind and listen
-c,--config Configuration File Path
-challengeCodeTTL Maximum Validity of Challenge Code in Milliseconds
-gameip Game Server IP Address
-gameport Game Server Port
-gameUpdateRate Game Server Update rate in Milliseconds
-gameUpdateTimeout Game Server Update Socket Timeout in Milliseconds
-h,--help Display Usages
-p,--ppsStats Enable Packets per Second Stats
-port Local Server Port on which Cacher Server will bind and listen
-r,--receiveBuf Server Receive Buffer Size
-s,--sendBuf Server Send Buffer Size
-w,--threads Number of Threads
```

# Sponsors
```
FATALITY~The ImmortaLs 24x7 PuB [bl4rr0w]
Web: https://www.gametracker.com/server_info/146.56.50.40:55555/
```