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 install Quake
Do the following:

  1. Download the full Quake package here (526 MB)
  2. Unzip the downloaded file on your computer
In the zip file, JoeQuake - an engine built for speedrunning by a speedrunner - is included. We strongly recommend using this engine. All details regarding the engine can be found on its website.

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

Other engines that are allowed are: The official .exe's created and distributed by id Software (Quake.exe, WinQuake.exe and GLQuake.exe).
If you're a Mac user, please use MacGLQuake. If you're the least unsure, contact us before you start running.

If you've obtained Quake by any other means than from SDA, you must use QdQStats to get an exact exit time as well as much more. Download it here and extract the content to a folder named qdqstats. When done, create a shortcut to the engine and add -game qdqstats like this:

E:\Games\Quake\Quake.exe -game qdqstats

The zip file also contains all maps added to SDA, all valid records on the original Quake maps ("ID records") and some player configuration files ("cfg's").

Step 2: Start Quake
It's possible to start playing by double clicking the joequake-gl.exe file, however, we do suggest another way:

  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, add the following: -noscale -width 1920 -height 1080 -set cl_independentphysics 1 +map e1m1 +exec yourname.cfg
By doing this, Quake will automatically start with a 1920x1080 resolution resulting in better graphics, use independent physics (unlimited client-side fps), start on the e1m1 map with your own configuations executed.

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 folder where you'll find several cfg's from different speedrunners. You can try them out by 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. You can then save these settings in a new file named yourname.cfg. Make sure to place the file in the /id1 folder. 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
In the zip file, all maps on SDA are included and located in the /id1/maps folder. To add more maps, place the .bsp file in this folder.

Some maps with non-original textures, sounds, weapons, enemies and objects are downloaded as .pak files, for example Hipnotic or Rogue.
If so, you need to create a new folder in your Quake directory and place the file(s) there.

To play a regular .bsp map, bring down the console and write map mapname, e.g. map e1m1.

To play a .pak map, you need to change the shortcut to be able to play it. Add -game foldername directly after joequake-gl.exe:

E:\Games\Quake\joequake-gl.exe -game foldername -noscale -width 1920 -height 1080 -set cl_independentphysics 1 +map e1m1 +exec yourname.cfg

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, go to SDA, 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 from its website. You might get a warning from your antivirus software when downloading/installing it but it's safe to disregard.

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, bring down the console and write playdemo demoname, e.g. playdemo e1m1_019.

If the demo is a marathon, it might be a .pak file instead of a .dem file. To play the demo, do the same as for a .pak map and then type playdemo demoname.

Step 5: Record a demo
If you want to record when you're playing, bring down the console and write:

When you have finished the recording, by exiting the level or written stop in the console, the demo can be found in the /joequake folder.
Make sure to create a copy before attempting a new run, as the demo will be overwritten.

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.

Create a video file of the demo
Please note that this is not mandatory to do before submitting a record. The SDA team will do it once the record has been approved.

There are of course several other ways of doing this, for example by using OBS or similar, so view this as a suggestion.

If you want to create a video file of your demo so that you can upload it on YouTube, do the following:

  1. Start JoeQuake and execute your cfg <-- Note that this only works in JoeQuake
  2. Bring down the console and write capturedemo demoname (i.e. capturedemo e1m1_019) and press Enter
  3. Make sure to bring up the console right away to not include it in the capturing process
  4. Once finished, the video file(s) can be found in the capture folder (note that the video files are split into chunks of 2 GB each)
If you want to capture more than one demo, make sure to restart JoeQuake between each capture, otherwise the sound will be messed up!

The video capturing takes rougly 2-3 times the length of the demo and the size of the video file(s) is about 5-7 GB per minute. To stitch the videos and reduce the size, do the following:

  1. Download and install VirtualDub
  2. Download and install the x264vfw codec
  3. This step is only done once. Feel free to play around with the settings. Open VirtualDub to configure the codec by doing this:
  4. Click File and then Open video file..., go to the capture folder and choose the file named the same as the demo
  5. Click File and then Append AVI segment..., go to the capture folder and choose the file named the same as the demo with _001 in the end (if there are more video files, they are automatically appended)
  6. Click File and then Save as AVI..., choose where to place the file and press Save
The finished video file will take about 5% of the original size. Start the video and make sure the sound is in sync before uploading it.

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!

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 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:

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.

To ensure this functionality is not abused, you need to follow these rules:

*If lowering the FPS is used to bypass a trigger (for example the one that lowers the silver key in e3m2), you need to detail this in the text file.
If the record is approved, it will be added as a separate category on the map; The trigger bypass way.

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 records

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 records (can be used for training)

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.