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.
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 setup a Quake package
Do the following:
In the zip file, JoeQuake - an engine built for speedrunning by a speedrunner - is included.
All details regarding the engine can be found on its website.
- Download the light Quake package here (86 MB)
or the large Quake package here (5.3 GB)
- Unzip the downloaded file on your computer
- Browse to your Quake steam 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.
- Do the same thing for the pak0.pak files in the rogue and hipnotic directories.
- 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, QdQStats - an add on that allows you to get the exact time and much more - is included within the pak2.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.
The zip files also contains all valid records on the original Quake maps ("ID records") and some player configuration files ("cfg's").
The large file also contains all maps on SDA.
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, 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/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. 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, 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, 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 or nickname
- The map's name
- The skill (Easy/Nightmare)
- Type of record (Run/100%)
- Total number of kills & secrets
- The time
- The date of the recording
- 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 on the Quake Speedrunning Discord server or email to quake @ speeddemosarchive.com
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 change the skill setting when recording a demo
- You are not allowed to bring down the console when recording a demo, except to stop a demo recording
- 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' on, (impulse 211)
- You are not allowed to record a demo with 'trigger info' on, (impulse 212)
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)
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.
- You are allowed to disable the particle system
- You are allowed to disable the shotgun casings
- You are allowed to disable the footsteps
- You are not allowed to disable the shotgun projectiles
- You are not allowed to disable the Z aware monsters
- You are not allowed to disable the monster liquid damage
- You are not allowed to disable the item offset
- You are not allowed to 'upgrade' anything
If you're unsure about AD settings, ask us first before recording.
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 22.214.171.124" 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.
- 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
Not allowed in demos (can be used for training)
- Visible triggers: If you want to see where triggers are, write impulse 211 in the console
- Trigger info: If you want to see what triggers do, write impulse 212 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
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!
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.