The system can detect low rate players even if they've got seemingly good client rate settings. The system uses internally Linux's iptables firewall, which makes it possible to get very accurate packet numbers for players.

Main reason why players lag is that they've got very bad FPS. There's nothing they can do to improve their FPS, and because they've got good rate settings set to their client, they cannot be detected by the game server itself. This system auto-detects laggers, sends them warning that they've got bad rates, and then kicks/bans them from the server. The end result is lagger free server where everybody have really good rates.

Install instructions

1. Set Linux firewall chain to track player packets
2. Redirect all game data through the tracking chain
3. Start Low Rate Tracking System

I've been developing new player rate tracking system for catching low raters. The system is in beta version and it's been tested for a week now. It uses Linux's firewall to get accurate readings from all players. The system is fool-proof, so after installing the system there's no way that someone could fake his true rates.

The problem with low raters is obviously that they're difficult to hit - and some say they make the server lag altogether. The game server's sv_* rate settings are not reliable and do not force players to really send the updates the server wants. In general all server cvar settings for clients are unreliable. This iptables based rate tracking system bypasses game server's setups and gets players' rates directly from the Linux kernel.

The monitored server scans players' rates in one minute samples and then calculates true rates for each player. The system can be configured only to keep track of player rates, but not ban low raters. The system stores all players' rates to specific log files, so it's possible to see what kind of rates players have in general.

The server is tick 66 and expects players to send 66 updates per second. The player "al quaida-NL" sent 23.43 updates per second. Not enough. Banned. The limit was set to 25 updates per second.

Some players have crappy computers that can't render more than 20-30 FPS. They lag. They can't help it. They can set whatever cl_cmdrates, but their own FPS limits how many updates they send to the server. They're low rate laggers no matter what.

This system bans the low rate laggers. Before banning them the system tells the player that he's got low rate and he gets banned. You can set your own rate limit to the system, so if you've got 33 tick server, you can set limit for example to 15 updates per second. If you've got 100 tick server, then you can set limit to 75 updates per second for example.

In my own tests I've seen that about 80% of players can't achieve 66 updates per second on my server. Note that the rate is not affected by the server. The server wants 66 updates per second, but it's the players who don't send the updates. Nonetheless, the same players look at ma_rates and whine when somebody doesn't have 66/66/30000. They themselves might have FPS around 40-50 and thus be sending about 45 updates per second, but they think they're so perfect because they've set 100/101/30000 rates to their config.cfg. The truth is that they lag, but nobody really sees the difference. This rate tracking system identifies low raters by looking at directly to the number of packets received from the player's IP : PORT, and determines that way the real rates. Low raters can't do anything to fool the system.

PS. You're no server admin if you haven't seen players complain about low raters!

HBS|Ryan Wrote:gotcha, i wasn't quit awake all the way when i read the first post.
Good job.

Thanks.

Do you want to take part to the testing. It'd be good to see how this helps professional gamers / servers. At least if I was professional gamer, I'd like to have my opponents do the 100 updates per second as expected on a 100 tick server.

The tracking system is highly "non-intrusive", so it doesn't show up to players in any way if you don't want to. Performance impact should be also extremely low because the system uses Linux's iptables firewall, which is integrated directly to the kernel. Firewall rules are practically invisible performance-wise. Additionally the system parses the output of iptables every 60 seconds. Running the tracking system is probably more lightweight than running crond

It's unbelieveable how bad rates / FPS players have. I've seen players complaining that someone doesn't have his rates set to 66/66/30000, but when I use this system to see his own actual rate, it turns out that he's sending only 40-50 updates per second. There are also quite many players with real rates as low as 20 updates per second. Almost everybody have maximum client rate settings, but only about 10-25% of players reach 66 updates per second.