Ratetables - Rate Tracking System for Source Dedicated Server

Ratetables for HL2:Source based games

This system will track number of game update packets sent by players, and ban those with too low rate.

Low rate players are difficult to hit because they're not sending enough updates to the server. The server must estimate where the low rate players might be going, and it'll send those estimations for other players. If the estimations are wrong, then the low rate player movement will seem jumpy. This happens quite a lot with players with low rate.

The system reads the number of packets directly from the Linux kernel. It's fool proof system that cannot be tricked with client CVAR settings or other tweaks. The main cause for players' low rates is bad FPS. Players with bad FPS can't do anything to improve their rate over their FPS - except set low GFX settings orbuy new hardware.

It's still important that servers have sv_cmdrate and sv_updaterate set to match the game tickrate or over - although values over the tickrate don't make any change. That way all players are forced to at least try to achieve the required rate.


Latest update: 2011-12-01 (XML-RPC version)

Updated: 2010-02-15

Updated: 2009-04-30

Released: 2008-08-31

Download: Ratetables (ratetables-xmlrpc.2011-12-01.tar.gz)

Save the file on your game server. Extract it with tar xvzf ratetables-xmlrpc.2011-12-01.tar.gz. Configure server.cfg and client.cfg. Start ./ratetables-server.pl and ./ratetables-kicker.pl. Ask for more instructions and send feedback at the forum.


Root access to command line

Basic Configuration

For example if you've got server on port 27015, then run the following commands as root:

iptables -N csstracking
iptables -I INPUT -p udp --dport 27015 -j csstracking

Advanced Configuration

It's also possible to run the tracking system on multiple servers by adding new csstracking chains.

For example you could have chains "csstracking1" and "csstracking2". Then you would direct packets to server1 to csstracking1 chain and packets to server2 to csstracking2.

For example if you've got two servers on ports 27015 and 27016, then
run the following commands:

iptables -N csstracking1
iptables -N csstracking2
iptables -I INPUT -p udp --dport 27015 -j csstracking1
iptables -I INPUT -p udp --dport 27016 -j csstracking2

Configure servers in server.cfg accordingly and and restart ratetables-server.pl.

Web interface

It is possible to see the rates on a web page too. Copy the files in web/ directory to your web site. Configure index.php to match your ratetables server's setup. Then open the index.php in your web browser. You should see live online statistics about the players on your servers.

Author: Ghost
Website: http://css.setti.info/
Date: 2011-12-01