QdQ Downloads
(Tools)
q2timer
To record speed demos for Quake II, a patch had to be made that adds a timer, since there isn't one in the game.



q2timer

Abstract

In order to make a run like QdQr you have to be able to time your demos. Quake II doesn't have a timer though. This is the main reason for this patch. It adds in Quake style intermissions to get the time of demos, which can be measured up to an accuracy of one tenth of a second.

q2timer also has many of the features that were in QdQstats, such as visible triggers and trigger info. It also has some new stuff and other stuff that was in Quake but not previously in Quake II.

Installation

There is a Win95/NT version and a Linux version. Get the one appropriate for you. Make a q2timer game directory in your quake2 directory and extract the files to that directory, being sure to extract with folder names.

Downloads


q2timer (192 kb)
Win 95/98/NT gamex86.dll game modification
download text
Version 1.11, 99/02/14
q2timer (211 kb)
Linux gamei86.so game modification
download text
Version 1.11, 99/02/24

Instructions

q2timer adds Quake style intermissions to Quake II, so that demos can be timed to the tenth of a second. This much is all done automatically, you don't have to do anything except run q2timer to have it time, but there is other useful stuff in it too:

New Cvars

q2timer adds several new cvars, here is a list of what they do.

  • computer: You can set this to zero to stop those annoying "computer updated" messages and the blinking f1 computer.
  • vistrigs: Set this to one to see where triggers are. Triggers are yellow-orange and have 'Trig' written all over them.
  • triginfo: Set this to one to get info about what happens when you touch a trigger, or kill a monster, or anything else. Whenever an event happens if prints out what is being targeted. I think the format is easy to understand; it is the same format used in QdQstats's trigger info. If you set triginfo to two, you will also get info about the various random events that occur in the levels.
  • showclosest: If you have trouble finding monsters in a level, set this to one and it will show you the distance to the nearest monster. It does not search for monsters that have not spawned in, so it might say "no monsters left" when you haven't spawned some in yet.
  • spawnpoint: You can set this to change where you start when you use the map command. For example, if you set it to 'base2' and then go to base1, you will start at the exit instead of the start. To see a list of choices for spawnpoint in a map, use the command 'spawnpoints'.
  • sdemoname: This identifies the run you are recording, and will also form part of the name that the 'keepthis' command will give to the recordings that you want to keep.
  • startitems: This is a string code that you can use to change what items you start with when you use the 'map' command. The basic format is the code for an item, followed by the number of that item that you want. Here is a list of codes for all the items. Details are in an appendix at the end of this page.
  • targets: This is also a string code that can be used to target certain entities when you use the map command. You don't need to worry about this, I just put it in for certain single level speed demos. If you really want to know what the format of this is, then you should email me.

New Commands

q2timer also adds some new commands, here is a list of what they do.

  • restart: This will restart the current level (and recording) without the usual delay that is caused by unnecessary reloading of all the map and model data.
  • keepthis: Once you've recorded a demo you want to keep, use this command to give it a sensible name and stop it from being overwritten the next time you restart.
  • spawnpoints: This will list all of the valid choices you can use for the cvar 'spawnpoint' for the current level. It prints an arrow next to the one you started at.
  • monsters: Prints out the origin of all the remaining monsters.
  • togglegc: Toggles an on-screen countdown to when a grenade will explode.
  • cooppause: Pauses a coop game, made so the server can pause the game while the clients connect and then unpause to do a speed run.
  • genocide: Kills all the monsters.
  • setitems: Sets the 'startitems' so that when you do a map command you will start with your current items. It's a great way to figure out how startitems works.
  • edict: Works just like Quake's edict command
  • edicts: Prints out all the edicts...

Other New things

  • Extra status information about the current time, secrets and kills is printed in the top-right of the display.
  • Single player death messages, so you won't just get "[yournamehere] died". They are the same as the deathmatch ones, except for when you get killed by a monster.
  • Improved give command. You can add a number to the end to get that number of that item. For armor and ammo, you get that number, as long as it is not above the max. For other items, the effect is the same if you would pick up that many of that item. 'give quad damage 9' will only give you one quad if you're on skill 3... For some fun, try 'give all 999' .

Known Bugs

None... let me know if you find any.

Version History

14th February 1999 - v1.11 released
  - Fixed some restart problems. Switchable lights and areaportals were not being reset to their original states.
2nd February 1999 - v1.10 released (finally).
  - Using 3.20 source code, only works on v3.20.
  - Added restart command so you dont have to wait for the level and all the modes/sounds/images to reload.
  - Added sdemoname cvar and keepthis command for automatic speed demo recording and renaming.
  - Got rid of cvar sbar and command nextsbar, instead using one status bar with the time, kills and secrets always in the upper right corner.
  - Removed intermission cvar and pak command because they weren't much use...
  - Added togglegc command to change the status of the grenade counter for the client that typed it in. [you shouldn't touch gcounter anymore]
1th April 1998 - v1.02 released.
  - really fixed coop intermissions this time.
  - added a command 'cooppause' that will pause a coop game.
  - fixed the crash on levels with no intermission point.
  - redid sbar 1 so it doesn't make demos bigger by 3k a second anymore.
  - added two variations to inter.pcx.
9th April 1998 - v1.01 released, fixing some coop bugs.
7th April 1998 - v1.0 for Linux released
5th April 1998 - v1.0 released

Appendix: startitems syntax

These are the codes that the startitems cvar uses.

ItemSymbolItemSymbol
HealthhAdrenalineH
Shotgun@Super Shotgun#
Machinegun$Chaingun%
Grenade Launcher^Rocket Launcher&
Hyperblaster*Railgun(
BFG10K)Shellss
BulletsbGrenadesg
RocketsrCellsc
SlugsSQuad Damageq
InvulnerabilityiSilencerl
RebreatherwEnvironment Suite
Power ShieldpRed KeyR
Blue KeyBPyramind KeyY
Security PassyPower CubeP
Data SpinnerdData CDD
Commander's HeadCAirstike Markerm

There are some special codes too. If you want your max ammo to be the same as if you had picked up a bandolier add an 'A1', or for an ammo pack, add an 'A2'. For armor, use an 'a' followed by a number for the armor type and then the amount of armor you want.

As an example, if you wanted to start with the super shotgun, 25 shells, a max health of 105 and 37 combat armor, you would set 'startitems #s25H5a237'.