website/speed_cheat.php
2000-04-14 14:34:34 +00:00

78 lines
3 KiB
PHP

<?PHP
$sitename = "The QuakeForge Project";
$pagename = "Speed Cheat Detection";
require("parts/library.php"); // Load function library
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<TR valign="top">
<?php
include("parts/menu.php"); // Import left-side menus
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<h3>How does it work?</h3>
<P>
The speed cheat works by the client lying to the server
about how much time has passed since the last packet
was sent. Therefore, the cheat detection is simple.
For a period of say, 30 seconds, QuakeForge adds up the
times from all the movement packets received from a
specific client. If the client says that more then 30
seconds have passed in 30 seconds, a red flag is raised.
<h3>Are there any problems with this?</h3>
<p>
Sadly the Windows QuakeWorld clients before 2.33 had a
bug in keeping track of time. The longer Windows is up,
the faster time will seem to pass. While there is not a
noticeable speed boost from this until it has been up
for more then a day or so, it is detectable even after
the system has been up only a few hours.
<p>
This and several other factors can cause the time
reported by the client to be over the time the server
expects. Lag and packet loss are some of these factors.
<h3>Well, what can I do?</h3>
<p>
Recongnizing these concerns, we decided to make the
cheat detection adjustible for server admins. Here are
descriptions of some of the cvars that you can use to
configure cheat detection on your server.
<p>
<em>sv_timekick</em>: This cvar controls the number of
times a player has to be caught "cheating" before they
get kicked. sv_timekick shows up in serverinfo if it is
changed from the default. If sv_timekick is less than 1,
speed cheat detection is disabled. Default is 3.
<p>
<em>sv_timekick_fuzz</em>: This cvar affects how strict
the protection is. The higher the number, the more
"fuzz" is applied, and the less strict the detection
code is. Raise this if your players are being kicked for
packet loss and lag. Default is 10, giving a fuzz factor
of about 1 percent.
<p>
<em>sv_timekick_interval</em>: This cvar controls how
often, in seconds, the time tally is counted. Lowering
this value increases the chance of false positives, but
helps to minimize the amount of damage a speedcheating
player can cause. Default is 30 seconds.
</TD>
<?php
tableSpacer( 1, 9, 1, "black");
?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>