website/speed_cheat.php

80 lines
3.0 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
?>
<h4>How does it work?</h4>
<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.
<h4>Are there any problems with this?</h4>
<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, including lag and packet
loss, can cause the time reported by the client to be
over the time the server expects.
<h4>Well, what can I do?</h4>
<p>
QuakeForge's cheat detection is adjustible, so that
server admins can decide what settings work best. 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. The values of this cvar are in
tenths of a percent. 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 speed-cheating
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>