The Ravenous Bugblatter Beast of Traal
Stupid, but extremely ravenous!

Rate Management Plugin - Version 3.3 - Overview

Filename: plugin_blatt_rate

Offline Manual

You are reading this offline manual for this plugin. The links to the right navigate through the offline information. The links above and to the left link to www.ravenousbugblatterbeast.pwp.blueyonder.co.uk. If you downloaded the plugin from somewhere else, or downloaded it some time ago, I recomend you check for an updated plugin. Note that the on-line manual may have been updated even if the plugin hasn't.

Overview

The rate management plugin adjusts every players "rate" every time a new player joins or leaves the game. The "rate" controls how frequently the client contacts the server, and is measured in bytes per second - e.g. A 56K modem has a theoretical rate capacity of 56 * 1024/8 = 7168.

Some players with fast Internet connections set their rate very high, which gives them a slight advantage in the game over those with lower rates as they can send and receive updates about the position of each player more frequently. Some do this intentionally picking very high rates, others pick moderately high rates by selecting "T1/LAN" as their connection speed from the GUI menu when joining a server.

When such players connect to a server that has a fairly low bandwidth connection (for a server), such as those on low-end Cable / DSL, the server's connection will be flooded and packets to all players will be dropped. If the overload is low, this will manifest in the game as lag. If the overload is high and a large number of packets will be dropped, this will manifest as the game freezing for short periods (1-10 seconds). The ping of every Internet user will also race to around 2000+. Of course local users who experience no packet loss on their LAN connection will often not notice this has happened immediately, and guess who is normally the admin...

This plugin allows the server admin to set a total amount of "rate" to be shared amongst all players connected. Whenever a new player connects, each player's share of that overall pool of rate is updated to an equal slice. It does this by setting server side limits and by issuing a command across the network that is run on the client.

This dual approach ensures that the settings can't be overridden by the players, but the player can see the changes to their rate.

NOTE: This plugin only helps to reduce "lag spikes" caused by this specific phenomenon - it does not eliminate lag entirely, or reduce the lag of players when the server has enough bandwidth to function correctly. Do not e-mail me just to complain that your server is still laggy after installing it - you will be ignored.

ALSO NOTE: The ping time of the player with the high rate is completely irrelevant in all this. Ping time is a measure of how long a single packet takes to travel from the server to the client and back. It is not the time one packet takes that is of relevance, it is the number of packets received per second.

So why not just set sv_maxrate?

sv_maxrate is a server side variable that controls the maximum rate any individual player can use. However, consider the following: You have a 128K server connection and want a 6 player game. If you were to use sv_maxrate to limit the rate, you would have to set it to 2730, which is quite low.

If you use this plugin, when six people are on your server, the rate would still be set to 2730. However, when less than six are playing, the rate will raised to improve everyone's game performance. The plugin ensures your server bandwidth is kept near full utilisation regardless of how many are playing.

Local users

If some of your players are on a LAN with the server, they won't consume the server's Internet connection bandwidth. You can configure the plugin with either a static number of local users to ignore when computing rate, or let it dynamically determine if a user is local from their IP address.