SDA logo

Contact information
You can reach the SDA team by sending an e-mail to quake @ speeddemosarchive.com

If you have any question regarding speedrunning Quake in general, feel free to join the Quake Speedrunning Discord server.

Introduction
Quake is a first-person shooter game developed by id Software and released in 1996. The original game consisted of four episodes and an end map but since then, several official and custom episodes as well as hundreds of custom maps have been released.

Speed Demos Archive, SDA in short, was started by Nolan 'Radix' Pflug back in April 1998. It has since evolved to include not only Quake but more than 1200 other games as well. However, this is the Quake section of the site.

The idea with SDA is to gather and record speedrunning demos on the maps available on the site. The objective with a speedrunning demo is to finish the map as quickly as possible using any means necessary (except cheating, see Rules for what's allowed).

There are four different kind of records to break:

The difference between easy and nightmare skill is normally the number of enemies as well as how aggressive they are.

There are also two other skills; normal and hard. These are not represented on SDA.

How to get started
To make it as easy as possible to get your running career started, read through the six (6) steps below as well as the Rules and Tips & tricks sections.

Step 1: Download and setup a Quake package
Do the following:

  1. Download the light Quake package here (54 MB)
  2. Unzip the downloaded file on your computer
  3. Browse to your retail Quake directory, this is most likely C:\Program Files (x86)\Steam\steamapps\common\quake and copy pak0.pak and pak1.pak from the id1 folder and paste them into the id1 folder of the Quake package that you just unzipped earlier.
  4. Do the same thing for the pak0.pak files in the rogue and hipnotic directories.
  5. Browse to where your Quake package is and run vispatch.exe in these three directories - id1, hipnotic and rogue. This will vis the maps for transparent water.
In the zip file, JoeQuake - an engine built for speedrunning by a speedrunner - is included. JoeQuake is the only engine allowed for speedrunning. All details regarding the engine can be found on its github.

In the zip file, QdQStats - an add on that allows you to get the exact time and much more - is included within the pak2.pak file.

The zip file also contains some player configuration files ("cfg's").

Step 2: Start Quake
Start Quake by running the joequake-gl.exe file. The game will automatically start with your desktop resolution.

If you encounter issues by running the joequake-gl.exe file, we suggest to perform the following steps:

  1. Create a shortcut to the joequake-gl.exe file on your desktop
  2. Right click on the shortcut and choose Properties
  3. In the Target box, you can add command line parameters, e.g. -width x -height y

If a video resolution problem occurs at startup, try any of the followings:

Much of the game's configuration can be done in the menu. If you rather want to copy an existing player configuration file you can have a look in the /id1/configs folder where you'll find several cfg's from different speedrunners. You can try them out by copying a config to the /id1 folder and bringing the console down once Quake is started and typing exec xxx.cfg.

Play around with the settings until you find what suits your way of playing. When you exit the game, your changed settings will automatically be saved to the config.cfg file and will be reloaded at the next startup. But, if you want you can save your settings in a new file named yourname.cfg using the writeconfig command.

Make sure to read the Rules section first so you don't change anything that's not allowed!

Step 3: Download and play a map
To download a map (some maps are part of mods), click Demos and then Demo Index. Choose the map you're interested in and click its name. On the map's page, click the download link. Read the install instructions included with the map or mod if you're unsure how to play it.

To play maps, bring down the console and write map mapname, e.g. map e1m1.

To play mods, use JoeQuake's Mods menu to switch between mods.

Important: Quake handles the Hipnotic and Rogue official mission packs in a special way. Therefore it is mandatory to:

  1. Keep their folder names as Hipnotic and Rogue
  2. Start Quake with -hipnotic and -rogue command line switches (do not use -game hipnotic or -game rogue)
In JoeQuake, if you're unsure of the map's correct name, it's possible to press tab for suggestions. You can also find all maps in the menu.

Step 4: Download and play a demo
To download a demo, click Demos and then Demo Index. Choose the map you're interested in and click its name. On the map's page, you will find all record categories as well as all valid and previous records. Just click the time of the demo to download it.

Place the unzipped files in your /id1 folder.

Please note that all demos are compressed using Dzip (written specifically for compressing Quake demos by Nolan 'Radix' Pflug).
Download Dzip here.

All records consists of a .dem file and a text file where the player has detailed the record and written comments. If it's a coop record, meaning more than one player, the dzip file will containt two or more .dem files and one text file.

To view a demo:

If the demo is a marathon, it might be a .pak file instead of a .dem file. To play the demo, rename the .pak file to pakX.pak and put it in the /id1 folder. Now change the X in the .pak file to be the last pak number. You may add as many .pak files to the /id1 folder as you like, but the pak numbers must be in order.

Use Pakscape to see what demos are in a .pak file. Download it here.

Bring down the console and write playdemo demoname, e.g. playdemo start
Marathon demos cannot be played back from the Demos menu.

Step 5: Record a demo
If you want to record when you're playing, there are 2 options available:

  1. The classic way
  2. Bring down the console and write:

    When you have finished the recording by exiting the level, bring down the console and write stop in the console.
    Make sure to create a copy before attempting a new run, as the demo will be overwritten.

  3. Automatic recording
  4. JoeQuake supports automatic demo recording. To turn this feature on, set the value of cl_autodemo to 1 or 2. Then, at every level start the game will automatically start recording into a temporary demo file. When you finished the level, you can save (automatically rename) this temporary demo file using the keepdemo command. Read more about this feature here.

Step 6: Submit a record
To beat a record, you need to decrease the time with one full second. This means that if the record is 19 something, you need to get 18 something.
For example, regardless if the record is 19.99 or 19.01, it's considered beaten if you get 18.99999 or below.

If you have beaten a record, do the following:

The demo will be reviewed by the SDA team and if approved, included in the next update. If not approved, you will of course get to know why.

Rules
There are a lot of rules to comply to. If you are in any way unsure, don't hesitate to contact the SDA team and ask before recording and/or submitting a demo. It might be considered cheating otherwise.

Here is a summary of the rules you need to follow when recording a demo you submit:

There are more variables/functions/commands that are not allowed to use, but it's impossible to list them all.
Be smart and keep it simple; don't use anything that gives you any kind of advantage over other players.

Specific iD/SoA/DoE rules

If you record a demo on original iD/SoA/DoE, there are some specific rules that apply:

Specific marathon rules

If you record a marathon demo, there are some specific rules that apply:

Specific coop rules

If you record a coop demo, there are some specific rules that apply:

Specific Arcane Dimensions rules

If you record a demo using Arcane Dimensions, there are some specific rules that apply: These settings can be changed in the quake.rc file used in AD and AD mods.
If you're unsure about AD settings, ask us first before recording.

FPS tricks

By using the vaiable cl_maxfps you are able to instantly lower your FPS making certain tricks possible. An example of this is the Easy 100% record on e1m1 where a sudden decrease in FPS makes it possible to get out of the slime to the secret quicker.

Examples of FPS tricks:

Scripting
First of all - what is scripting? Simply speaking a script is a set of commands joined together that can be executed by pressing a single key.

Is it allowed? It's not that easy to say since there are different types of scripting. Let's go through them.

To choose or fire a weapon
An example of this could be alias gl "impulse 6;+attack" which you then bind to a specific key that lets you choose the grenade launcher and fire it.
This is allowed.

Record a demo and connect to a server
An example of this could be alias coop "stop;wait;disconnect;wait;wait;record x;connect 69.69.69.69" which you then bind to a specific key that let's you disconnect from a coop game, record a demo and then connect again.
This is allowed.

"Do tricks more consistently" scripts
With this we mean any form of script that does a trick for you. Example: The explo box boost on e1m1 or the exit zigzagging on e4m2.
This is not allowed.

Tool Assisted Speedrun (TAS)
A way to "program" the player to go very quick or to do tricks that are hard or impossible for a human to do.
This is not allowed.

Please note that there are several demos at SDA that uses scripts and they were all approved by the SDA team at one point in time. It's a thin line between what's allowed or not but the goal is to keep scripting to a minimum.

Therefore, our current standpoint is to not accept any demo with a script that lets the player do things he/she would normally not be able to do and/or a script that helps out with specific tricks (e.g. rocket jumps or quick turns) - even if it's just for a small part of the demo.

If you are unsure, ask us in advance. If you do get an approval to use a script, you must detail how it's done in the text file.

Tips & tricks
It's impossible to write down every single trick in the book - it would also take away much of the fun. Instead, the list below consists of some of the things you could use to improve your running.

Allowed in demos

P.S. The grenade counters can be removed once the demo is recorded using Demtool. A nifty little application that can do a great deal of things.

Not allowed in demos (can be used for training)

Coop
A coop demo is when 2-8 players are playing together to break a record. By playing together, it's possible to boost each other and the routes can be divided among the players resulting in a quicker exit.

How to coop
First of all, make sure to read the Specific coop rules below.

If you're in the lucky situation to have mates around that you can play with on LAN, you can of course connect directly and enjoy the low ping.

To be able to coop over the internet, we suggest that you use ZeroTier One. Do the following:

The host

  1. Download ZeroTier One and install it
  2. Create a free account on their website
  3. Log in to the account, select the Network tab and click on Create a Network
  4. Forward the ID to the other players, this is what they use to connect to your network
  5. Click on the ID and select the Members section. Once the other players start to connect, they will appear here
  6. When they have connected, click on the Auth? checkbox for each other player and wait a moment until they get a Managed IP
  7. Provide the other players with your managed IP, this is what they use to connect to your game
  8. Create a shortcut to the game and add a launch parameter in the target box: -ip 172.168.XX.XX and start the game
  9. In the menu, click Multiplayer, New game, TCP/IP, OK and then set Game type to Cooperative and the Teamplay to No friendly fire
  10. Click Begin game
  11. Set up the appropriate binds for recording the demo:
  12. Go nuts!
If you are more than 4 players, you need to add -listen 8 as a launch parameter in your game's shortcut.

The other(s)

  1. Download ZeroTier One and install it
  2. Right click on the icon in the taskbar and click Join Network...
  3. Insert the ID provided by the host and then click on Join
  4. If prompted by Windows, click Yes
  5. Start the game, bring down the console and write connect 172.168.XX.XX (as provided by the host) and press Enter
  6. Set up the appropriate binds for recording a demo:
  7. Break a leg!

Old and/or obsolete guides
Should you feel the need, we have saved the old guides to read. Some information may be contradictory and if so, this page takes precedence.