mirror of
https://git.code.sf.net/p/quake/website
synced 2024-11-10 15:22:13 +00:00
ac73b9c2e7
accidentally-speed-cheating client.
64 lines
3.1 KiB
PHP
64 lines
3.1 KiB
PHP
<? // Preamble
|
|
$pageName = "Speed/Time Cheat Protection";
|
|
$focused = "none"; // Dock icon name to gets a border
|
|
require("parts/preamble.php"); // Load most of document
|
|
?>
|
|
<!--SEARCHME-->
|
|
<H4>How does it work?</H4>
|
|
<P>The "time cheat" relies on the client lying to the server
|
|
about how much time has passed since the last packet was sent. Knowing
|
|
this, detecting the time cheat is simple. For a period of say, 30 seconds,
|
|
the QuakeForge server 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 (This is not really a bug in QuakeWorld, but Windows 95 and
|
|
98). 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, along with other factors including lag and packet loss, can cause
|
|
the time reported by the client to be over the time the server expects.
|
|
|
|
<H4>What can I do as a server admin?</H4>
|
|
<P>QuakeForge's cheat detection is adjustible within the server, so that
|
|
administrators can decide what settings work best. Here are descriptions
|
|
of some of the config variables ("cvars") that you can use to
|
|
configure time cheat detection on your server.
|
|
|
|
<P><STRONG>sv_timekick</STRONG>: 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><STRONG>sv_timekick_fuzz</STRONG>: This cvar affects how strict the
|
|
protection is. The higher the number, the more "fuzz" gets 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><STRONG>sv_timekick_interval</STRONG>: 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 time-cheating player can cause. Default is 30 seconds.
|
|
|
|
<H4>What can I do as a player?</H4>
|
|
<P>Obviously, we suggest using one of QuakeForge's QuakeWorld-compatible
|
|
clients (available in the <A href="/files.php">Downloads Section</A> of our
|
|
web site), none of which exhibit this problem. If you don't want to use
|
|
QuakeForge, you can use
|
|
<A href="http://www.quakeworld.net/files/quakeworld/qw233-0005.zip">QuakeWorld 2.33-005</A>,
|
|
the last "test release" before id Software released the source.
|
|
You can also use any of the QuakeWorld-compatible clients released by the
|
|
other engine projects, but of course we can't verify that any of them do
|
|
not exhibit the problem or even if they work.
|
|
|
|
<!--NOSEARCH-->
|
|
<?
|
|
require("parts/postamble.php"); // Finish this sucker up
|
|
?>
|