QdQ The console
Here at QdQ, we attempt to draw a clear line between altering your Quake configurations to suit your style, and altering it to play a different game altogether.



Summary

Here are the main things we think you shouldn't do. To get a full explanation of how and why they were chosen, and to be sure you don't do anything else illegal by accident, you probably want to read the rest of the page in full too.

Don't use the cheats!
i.e. GOD, NOTARGET, NOCLIP, IMPULSE 9, IMPULSE 255, FLY and GIVE.
Don't change the server-side variables!
So leave all the SV_-variables alone (except for SV_AIM, which you may set to 1 if you want to turn auto-aiming off. Don't lower it from 0.93, though.) Also don't touch EDGEFRICTION, or HOST_FRAMERATE, which are server-side in all but name.
For QdQ, play on Nightmare!
You don't want to make us laugh now, do you?
Anything else is fine
Probably. Unless we forgot something. Read the whole page if there's anything you're at all uncertain about.

Introduction

One of the reasons that Quake is such a successful game is the fact that it is so open to modification. id Software made everything about the game as open as they could. One of the ways in which Quake is very open is the extremely powerful commands available from the console. Using these one can change many things about the game.

The one drawback of this openness is that it means that it can sometimes be difficult to know how far one can push things before one is technically cheating. Is it legitimate to alter such-and-such a console variable before demonstrating such-and-such a skill?

There can be no obvious answers to these questions. But without standards and limitations of some kind, the challenges that the game poses become meaningless.

So since there are no definitive answers from on high, we need to define some for ourselves. We at Quake done Quick have some fairly clear ideas about where the line should be drawn. We present them below, together with the reasons we have chosen them. For the purposes of Quake done Quick itself, these ideas actually define what makes a demo alright to use in our runs. For other purposes they may provide a useful standard from which deviations can be measured. For example, most contests would probably take a similar view of what is and what is not permissible for a player to do when playing that ill-defined concept that is "normal Quake."

Two criteria

There are two criteria that we follow. One is abstract and somewhat vague, but is still useful in understanding and guessing what is and what isn't allowable. The other is a practical standard that can be used to give some straightforward yes/no answers. We apply it almost without exception, although things could be interpreted in a different way in a few circumstances.

  1. Changing the actual ability of the player character to perform actions is not allowed. Changing the way in which allowable actions are controlled, however, is.
    The idea here is that the game physics are set and should not be altered. Within the physics of the game you can do what you want, in whatever way you want. This is clearly a rather vague definition: it may not always be 100% clear what is part of the game physics and what is not. But it gives a good intuitive underpinning to use when looking at the second, more concrete criteria.
  2. If you can't change it in DeathMatch, you shouldn't change it in single-player
    This makes a lot of sense. After all, the limits placed on the abilities of players to cheat in DeathMatch are there to make things fair and equitable. This is exactly what we want for competition standards in single-player mode as well.

    What this means

    Here are the consequences of applying these criteria, plus the odd clarification where it may not be clear how they should be applied.

    No cheat commands

    GOD, NOTARGET, NOCLIP, IMPULSE 9, IMPULSE 255, FLY and GIVE are clearly right out. Not that anyone would have considered using these in the first place, we would have hoped.

    No altering server variables

    All the variables prefixed with SV_ are under the control of the server, not the client. In DeathMatch play, the client can't change them to their suit their own preferences. Therefore you shouldn't alter them if you want to play standard Quake. The only reason you can alter them in single player is that you are running the server and the client on your machine. This means you shouldn't touch any of these console variables - leave them at their default values.

    • SV_AIM, which controls auto-aiming. If you lower it, your gun becomes magically better at finding its target. But see our additional note on this rather special variable! (Default value is 0.93)
    • SV_ACCELERATE, which allows you to change the direction in which you can move more rapidly. (Default value is 10)
    • SV_FRICTION, which controls how quickly friction effects bring you to a halt. (Default value is 4)
    • SV_GRAVITY, which controls how high you can jump, amongst other effects. (Default value is 800)
    • SV_MAXSPEED, which controls how fast you can run. (Default value is 320)
    There are also some other server variables which you shouldn't change either, though we think it is less likely you would want to since doing so doesn't seem to give you much of an advantage.
    • SV_IDEALPITCHSCALE. (Default is 0.8)
    • SV_MAXVELOCITY. (Default is 2000)
    • SV_NOSTEP. (Default is 0)
    • SV_STOPSPEED. (Default is 100)
    There are also two other important variables that control the physics of the game and that the client has no control over, and so should also be left untouched, even though they lack the SV_ prefix.
    • EDGEFRICTION, which controls how easy it is for the player to slip off a ledge. (Default is 2)
    • HOSTFRAMERATE, which controls the rate at which the game plays. On a server, the play is at normal speed, in real-time. The same should hold for regular single-player play. Using this variable to achieve slow-motion is a common cheat in competition, and is quite out of order. All players can improve their times using HOST_FRAMERATE, but they aren't playing normal Quake any more if they do. (Default is 0)

    Anything else goes!

    I think every other command that has some effect on the way the game seems to play is allowable in DeathMatch, and hence it is allowable in single-play as far as QdQ are concerned. Of course, if I have omitted something above that does fall foul of our criteria, then it is this list of consequences that is incorrect, not the criteria themselves. So don't go looking for loop-holes! If you think something is unclear, let us all talk about it.

    So, in particular, you can alter the client-side variables that start with the CL_ prefix to whatever you prefer in order to give you the sort of control abilities you want. Many players tune these to get a better response from the player. You can see that there would be some room for doubt about whether or not this was legal, but there are server variables that set the limit on what is possible (such as SV_MAXSPEED and SV_ACCELERATE) and the client can change their own CL_ variables in DeathMatch, so that's good enough for us. The same thing goes for the M_ variables that affect your mouse response.

    SV_AIM increases

    There is one server variable change that we do think is OK. Setting SV_AIM to 1 turns off auto-aiming altogether. This makes it harder rather than easier for the player to hit things in most circumstances, but occasionally the extra precision of control can be useful. The main reason we think it is OK to make this change is that there is a client console command that has exactly the same effect during a DeathMatch in QuakeWorld. NOAIM effectively sets the variable SV_AIM to be 1 for any player who types it. So it seems only fair to give this ability to single-play contestants as well.