You can reach the SDA team by sending an e-mail to email@example.com.
If you have any question regarding speedrunning Quake in general, feel free to join the Quake Speedrunning Discord server.
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:
- Easy Run (ER): On easy skill, finish the map as quickly as possible disregarding all enemies and secrets
- Easy 100% (EH): On easy skill, finish the map as quickly as possible killing all enemies and finding all secrets
- Nightmare Run (NR): On nightmare skill, finish the map as quickly as possible disregarding all enemies and secrets
- Nightmare 100% (NH): On nightmare skill, finish the map as quickly as possible killing all enemies and finding all secrets
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:
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.
- Download the full Quake package here (526 MB)
- Unzip the downloaded file on your computer
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:
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.
- Create a shortcut to the joequake-gl.exe file on your desktop
- Right click on the shortcut and choose Properties
- In the Target box, add the following: -noscale -width 1920 -height 1080 -set cl_independentphysics 1 +map e1m1 +exec yourname.cfg
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:
- bind r "record demoname mapname", e.g. bind r "record e1m1_er e1m1" (you can of course choose another key than 'r')
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.
- Name the demo file accordingly (check the previous record if you're unsure)
- Create a text file where you add this information:
- Your name
- The map's name
- The skill (Easy/Nightmare)
- Type of record (Run/100%)
- The number of enemies killed and secrets taken
- The exact time (can be found by bringing down the console after exiting)
- The date of the recording
- The name of the player you beat and how much quicker you were
- Any comments about the run
- Name the text file accordingly (same as the demo file)
- Use Dzip to compress the two files and name the dzip file the same as the demo file
- Send the file to firstname.lastname@example.org
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:
If you want to capture more than one demo, make sure to restart JoeQuake between each capture, otherwise the sound will be messed up!
- Start JoeQuake and execute your cfg <-- Note that this only works in JoeQuake
- Bring down the console and write capturedemo demoname (i.e. capturedemo e1m1_019) and press Enter
- Make sure to bring up the console right away to not include it in the capturing process
- 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)
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:
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.
- Download and install VirtualDub
- Download and install the x264vfw codec
- This step is only done once. Feel free to play around with the settings. Open VirtualDub to configure the codec by doing this:
- Click Video and then Compression...
- Mark the x264vfw codec and click Configure to set the following:
- Preset: Faster
- Tuning: None
- Profile: Auto
- Level: Auto
- Rate control: Single pass - ratefactor-based (CRF)
- Ratefactor: 16.0
- Output mode: VFW
- VFW FourCC: H264
- VirtualDub Hack: Checked
- SAR width: 1
- SAR Height: 1
- Click File and then Open video file..., go to the capture folder and choose the file named the same as the demo
- 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)
- Click File and then Save as AVI..., choose where to place the file and press Save
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:
- Download ZeroTier One and install it
- Create a free account on their website
- Log in to the account, select the Network tab and click on Create a Network
- Forward the ID to the other players, this is what they use to connect to your network
- Click on the ID and select the Members section. Once the other players start to connect, they will appear here
- When they have connected, click on the Auth? checkbox for each other player and wait a moment until they get a Managed IP
- Provide the other players with your managed IP, this is what they use to connect to your game
- Create a shortcut to the game and add a launch parameter in the target box: -ip 172.168.XX.XX and start the game
- In the menu, click Multiplayer, New game, TCP/IP, OK and then set Game type to Cooperative and the Teamplay to No friendly fire
- Click Begin game
- Set up the appropriate binds for recording the demo:
If you are more than 4 players, you need to add -listen 8 as a launch parameter in your game's shortcut.
- bind r "restart;pause"
- bind t "record x;pause"
- Download ZeroTier One and install it
- Right click on the icon in the taskbar and click Join Network...
- Insert the ID provided by the host and then click on Join
- If prompted by Windows, click Yes
- Start the game, bring down the console and write connect 172.168.XX.XX (as provided by the host) and press Enter
- Set up the appropriate binds for recording a demo:
- bind r "record x;say ready"
- bind t "say reset"
- Break a leg!
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.
- You are allowed to change the variables starting with scr_ to anything you want
- You are allowed to change the variables starting with cl_ to anything you want (see section FPS tricks regarding cl_maxfps)
- You are allowed to change the variables starting with gl_ to anything you want
- You are allowed to change the variables starting with r_ to anything you want
- You are allowed to change the variables starting with m_ to anything you want
- You are allowed to change the variables starting with d_ to anything you want
- You are allowed to change the variables starting with v_ to anything you want
- You are allowed to use the grenade counter (impulse 210)
- You are not allowed to die when recording a demo (unless you exit at the same time).
- You are not allowed to respawn when recording a demo
- You are not allowed to pause when recording a demo
- You are not allowed to bring down the console when recording a demo
- You are not allowed to change the variables starting with sv_ (except sv_aim that is allowed to set to any value between 0.93 and 1)
- You are not allowed to set host_framerate to anything other than 0
- You are not allowed to set god, notarget, edgefriction, fly or noclip
- You are not allowed to use any cheats or impulses to receive more health, the quad damage, weapons or ammunition
- You are not allowed to record a demo with visible triggers
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:
- If you're doing a full run of original Quake, you must telefrag Shub in the End map
- If you're doing a 100% marathon, you must finish the objectives of the episode (kill all enemies, find all secrets and/or collect all the runes, etc.)
- You are only allowed to bring down the console to check the exit time in the intermission, never when playing the actual map
- You are not allowed to die while recording
- You are not allowed to restart a level while recording
Specific coop rules
If you record a coop demo, there are some specific rules that apply:
- You are allowed to die while recording as long as you don't respawn
- You are allowed to pause the game to let more players connect to the server
- You are allowed to use teamplay 1 to not inflict damage to each other
- The coop record is only valid if it's at least one second quicker than the single player record
- If there are three (3) players, the record has to be at least one second quicker than the two (2) player record (and so on)
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.
- You are allowed to bind a key to set the cl_maxfps to anything you prefer to be able to exit any liquid faster
- You are allowed to bind a key to set the cl_maxfps to anything you prefer to be able to enter and swim down in any liquid faster
- You are allowed to bind a key to set the cl_maxfps to anything you prefer to be able to stop after a wind tunnel faster
- You are allowed to bind a key to set the cl_maxfps to anything you prefer to be able to reach the exit trigger faster
- You are allowed to bind a key to set the cl_maxfps to anything you prefer to be able to bypass a trigger*
If the record is approved, it will be added as a separate category on the map; The trigger bypass way.
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 126.96.36.199" 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.
- Zigzagging: A way to move forward faster than just walking by strafing left and right continously. Read this article for more information
- Wallhugging: Another way to move forward faster than just walking if you have a wall close by. Read this article for more information
- Bunny hopping: Want to go even faster? Then jump! The best way to learn it is by watching demos but you can also read this article
- Power bunny hopping: A newer and even faster way to move forward. Here's an explanatory video
- Grenade counter: If you're having a hard time timing the grenade jumps, write impulse 210 in the console for a counter
- Ogre grenade counter: If you want to get a boost from an ogre's grenade, write impulse 209 in the console for a counter
- Remove shadows: If a map is dark and you want to light it up, write r_fullbright 1 in the console
- Speedometer: If you want to see how fast you're going, write show_speed 1 in the console
- FPS counter: If you want to see how many fps you're getting, write show_fps 1 in the console
- Player statistics: Shows the time, secrets and kills, write show_stats 2 in the console
- Remove dead enemies: If you want to get rid of all enemy corpses, write cl_deadbodyfilter 2 in the console
Not allowed in records (can be used for training)
- Visible triggers: If you want to see where a trigger is, write impulse 211 in the console
- Slow motion: If you want to slow down you're playing to try things, write host_framerate .01 in the console
- God mode: Don't want to die? Simply write god in the console
- All keys, weapons and ammo: Write impulse 9 in the console
- Quad damage: Write impulse 255 in the console
- Move through walls: Write noclip in the console
- Genocide: To kill all enemies, write impulse 205 in the console
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.