Quake 4 Tweak Guide
[Page 9] Advanced Tweaking (Pt.3)
recordDemo [demoname] - Records a demo of your current (singleplayer) gameplay with the name specified. The demo is placed in your \Quake 4\q4base\demos\ directory by default. This directory doesn't exist by default and is created the first time you record a demo.
stopRecording - Stops recording the current demo.
playDemo [demoname] - Plays back a singleplayer demo with the name specified.
recordNetDemo [demoname] - Records a demo of your current gameplay on a multiplayer server only and saves it to your demo directory, similar to the recordDemo command but is more 'real world' for benchmarking purposes - see this page for more details.
stopNetDemo - Stops recording the current multiplayer demo.
playNetDemo [demoname] - Plays back a multiplayer demo with the name specified.
com_preloadDemos [0,1]- Preloads all demos before playing them. Set to 0 will reduce memory usage, but loading demos will take longer.
com_compressDemos [0,1] - If set to 1 will compress demo files recorded, reducing their size. These files may take longer to load.
demoShot [demoname] - Creates a screenshot for the demo file specified.
avidemo [demoname] - Creates an AVI from an existing demo.
avigame Creates an AVI from your current gameplay.
com_aviDemoHeight [pixels] - Determines the resolution height in pixels for AVI demos generated through the avidemo command. The greater the size, the larger the resulting file.
com_aviDemoWidth [pixels] - Determines the resolution width in pixels for AVI demos generated through the avidemo command. The greater the size, the larger the resulting file.
com_aviDemoSamples [samplerate]- Determines the sample rate for AVI demos generated through the avidemo command. The higher the rate, the larger the resulting file will be, but the smoother it will play.
benchmark - Runs a benchmarking procedure which uses progressively less pixels (screen size shrinks) and then goes through a variety of effects until a result is provided at the end in the console.
timeDemo [demoname] - Runs a timedemo on the demo name provided. As no default demos exist in Quake 4, you will have to use a custom demo See the Conclusion section for more details of where you can download a good custom demo for use here, and more instructions on its usage.
timeDemoQuit [demoname] - Runs a timedemo, and then exits the game completely when done.
playNetTimeDemo [demoname] - Runs a timedemo using a demo recorded in multiplayer using the recordNetDemo command.
sensitivity [value] - This value represents your mouse sensitivity, as set by the slider in the in-game menus (See In-Game Settings). Raising the value increases the mouse's sensitivity to movements in the game.
m_accel [value] - This value sets the rate of mouse acceleration for Quake 4. The higher the value the larger your mouse movements will be as you keep moving the mouse in a particular direction. This option is only available in Quake 4 version 1.2 or higher.
The variables below control the slight bobbing movements your player has when moving around, such as when he is running (runroll, runpitch, runbob), walking (walkbob, bobroll, bobpitch, bobup) and crouching (crouchbob). These bobbing, pitching and rolling movements are all quite realistic, but may be annoying to some people. Raising the values increases the bobbing and pitching, while reducing the values lessens the intensity of these movements. Note, bobbing will still occur in multiplayer unless the server admin has allowed bob to be altered.
pm_crouchrate [seconds] - This setting controls the time it takes for the player to switch from standing to crouching. The higher the setting, the longer it takes.
pm_normalviewheight [value] - Determines the height of the player's view when standing.
pm_crouchviewheight [value] - Determines the height of the player's view when crouching.
pm_staminarate [value] - Determines the rate at which the player regains Stamina points. Divide the pm_stamina value by this rate to calculate how long it takes for the player to fully regain all his stamina.
pm_staminathreshold [value] - When stamina falls below this value, the player slows to a walk.
pm_stamina [value] - Determines the length of time a player can run.
pm_speed [value] - This setting determines how fast a player can run. Higher values result in a faster speed.
pm_walkspeed [value] - This setting determines how fast a play can walk. Higher values result in a faster walking speed.
pm_crouchspeed [value] - This setting determines how fast a player can move while crouching. The higher the value, the faster a crouching player can move.
pm_stepsize [value] - This is the maximum height over which a player can step without having to jump. Lower values may result in players not being able to climb stairs without jumping for example.
pm_jumpheight [value] - This setting is the approximate height a player can jump. Higher values will result in a higher jump height.
Update: As of the 1.4.2 Patch, pm_slidevelocity and pm_powerslide have been added, controlling movement speed on angled surfaces. g_playerLean has also been added, controlling the degree to which a player leans in the direction they're moving.
pm_thirdPersonDeath [0,1] - If set to 1, enables third person view when the player dies.
pm_thirdPerson [0,1] - If set to 1, shows the player in third person view.
pm_thirdPersonAngle [angle] - If third person view is being used (i.e. pm_thirdPerson is set to 1), this determines the angle of the third person view. 0 is behind the player, while 180 is looking directly at the player's face. Other values view the player from various angles.
pm_thirdPersonHeight [value] - If using third person view, this determines the height of the camera from normal view height. Positive values raise the camera above normal view height, negative values below normal view height.
pm_thirdPersonRange [value] - If using third person view, determines the distance of the camera from the player. 80 is the default, and 0 is right inside the players head.
pm_maxviewpitch [angle] - This setting determines the maximum angle a player can look down. Higher positive values will result in the player overshooting his own feet. Negative angles will result in the player looking up when attempting to view downwards.
pm_minviewpitch [angle] - This setting determines the maximum angle a player can look up. Higher negative values will allow the player to look up and over the back of their own head. Positive values will result in the player looking downward when attempting to look up.
com_showMemoryUsage [0,1] - If set to 1, shows the amount of memory allocated to the game and various assets.
com_memoryMarker [Megabytes] - This marker shows the approximate amount of memory (in MB) used by Quake 4 in its last run.
game_memory - Displays the amount of game memory allocated, and to how many objects.
showTriSurfMemory - Shows the amount of memory used for polygon surfaces.
com_showSoundDecoders [0,1] - If set to 1, shows all the currently loaded sounds, how large they are and how far through playback (in %) they are.
g_showPVS [0,1] - If set to 1, shows a wireframe border around all portals such as doors and passageways.
r_showSurfaceInfo [0,1] - If set to 1, shows the surface material name when a cursor is pointed at a surface.
r_showTris [0,1] - Enables wireframe mode. If set to 1, shows all visible geometry in wireframe. If set to 2, it only draws front-facing geometry in wireframe. If set to 3, shows all geometry (visible or not) in wireframe. Interesting to see how many polygons are being used for certain effects, like smoke and steam.
r_showLightCount [0,1,2,3] - If set to 1, colors each surface based on the light count, if set to 2 also counts everything through walls, and if set to 3 also prints overdraw.
r_showShadowCount [0,1,2,3,4] - If set to 1, colors the screen based on shadow volume depth complexity, if set to 2 prints overdraw count based on stencil index values, if set to 3 only shows turboshadows, and if set to 4 only shows static shadows.
r_showSilhouette [0,1] - If set to 1, highlights every edge which casts a shadow.
gfxInfo - Displays a dump of graphics information, including graphics card model, driver version, supported paths etc.
listSounds - Lists all sounds currently loaded and the amount of memory they are using.
listImages - Lists all images currently loaded and the amount of memory they are using.
listCvars [-help] - Lists all Quake 4 cvars, and if the -help switch is used, help text is also provided.
listCmds - Lists all Quake 4 commands.
The following commands all reload particular aspects of the game, such as sounds, images, decals and Graphical User Interfaces (GUIs). Using these commands at any point can help resolve any graphical anomalies or glitches you are experiencing with these particular aspects of the game by reloading them from scratch without having to quit and re-enter the game. Note, some aspects take a while to reload (e.g. reloadImages and reloadEngine can take quite a while), so be careful if using such commands in an online game.
The following are useful multiplayer commands which can be used by clients (players on servers). For more information on server commands and instructions, see the Addendum, section D of the Readme.txt file in your \Quake4\Docs\ directory.
connect [servername] - Connects to a multiplayer server with the given name
disconnect - Closes the current game map. Also used for skipping the introductory movie by appending +disconnect to the Quake 4 icon Target box (See Conclusion section).
reconnect - Reconnects to the last server connected to successfully.
ui_name [string] - This is your character name as set in the in-game menus. The only reason you may want to edit it using this command rather than the in-game menus is if you want to insert special characters in your name, or use color codes in front of letters. The color codes are ^1 Red ^2 Green ^3 Yellow ^4 Blue ^5 Aqua ^6 Purple ^7 White ^8 Grey ^9 Black. E.g. ^3Persian^1Immortal provides the text PersianImmortal when your name is displayed in multiplayer games.
ui_clan [string] - Similar to the ui_name command above, this controls your clan tag.
say [text] - Says the provided text in Global Chat in multiplayer.
sayTeam [text] - Says the provided text in Team Chat in multiplayer.
serverInfo - Shows information about the current server when in multiplayer.
net_clientMaxRate [Bytes] - This setting controls the maximum amount of data in bytes per second you can receive from a server every second. By default, most servers only provide 16000 bytes per second at most (as set in their net_serverMaxClientRate setting), but you can try first lowering this value to see if it reduces and stabilizes your ping when playing Quake 4 online. Try values such as 10000 or 12000. Note that just as values which are too high can cause problems, so too can values which are too low - Quake 4 multiplayer is not designed for dialup speeds (i.e. values of 6000 or less). You can try high values up to 25,000 if you have an extremely fast connection and/or are playing at a LAN.
net_clientLagOMeter [0,1] - If set to 1, a small graphical display is shown at the bottom left of the screen only during multiplayer games. It looks like a set of green, yellow and red blocks, and tells you various things about your connection. In essence however the main thing is for you to note whether it is predominantly green, or if there are lots of yellow and/or red blocks. Yellow and red indicate connection problems. If you switch to another server and these go away, then the problem is likely with the server and/or you may be quite far away from the server. If it happens on all servers however the problem is likely at your end.
net_clientPrediction [milliseconds] - Determines the number of additional milliseconds by which the client (your machine) will try to predict and offset any ping lag. The default is 10ms, but if you're experiencing connection problems and lag and/or a high ping, raising this value may improve things. Remember however that your ping is the round-trip time to a server (e.g. a 250 ping means 125ms taken for your data to get to a server, 125ms for it to get back). So your ping divided by 2 will give you the best prediction value, and usually only if your ping is higher than 150ms.
Update: As of the 1.4.2 Patch, the server command si_fps has been added, allowing server administrators to customize the game tick rate. The default is 60 fps, which is the normal FPS cap for Quake 4. However it can be set higher, up to 90FPS, providing for better input control and higher FPS, in return for higher CPU usage. You can see a server's tick rate by hovering your mouse over it. If you have a slower system, be wary of joining servers which have higher than the default tick rate.
Quake 4 Cheat Commands
A full list of Quake 4 cheat commands can be found here. Some of these are already covered (and described better) in the list above, however obviously almost all of these will only work in singleplayer mode or on multiplayer servers which are cheat-enabled.
That's the current list of the more useful Quake 4 command variables which I know. I need knowledgeable readers to send me better descriptions for any of the above commands which are not completely clear, and also any important additions you feel need to be made. So please, if you genuinely know what something does (no guesses please), Email Me. This section can then serve as a central resource for Quake 4 players to refer to for command tweaking.
The next section has a few neat tips and tweaks and wraps up the entire guide.