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:
- Easy Run (ER): On easy skill, finish the map as quickly as possible disregarding kills and secrets
- Easy 100% (EH): On easy skill, finish the map as quickly as possible getting 100% kills and 100% secrets
- Nightmare Run (NR): On nightmare skill, finish the map as quickly as possible disregarding kills and secrets
- Nightmare 100% (NH): On nightmare skill, finish the map as quickly as possible getting 100% kills and 100% 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:
- Download the light Quake package here (54 MB)
- Unzip the downloaded file on your computer
- 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.
- 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, 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:
- Create a shortcut to the joequake-gl.exe file on your desktop
- Right click on the shortcut and choose Properties
- 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:
- Delete your config.cfg file and restart Quake
- Start Quake using the -width and -height command line switches, e.g. -width 1920 -height 1080
- If you'd like to run the game with a custom resolution, use the additional -force command line switch
- For windowed mode, please use the -window or -borderless command line switches
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:
- Keep their folder names as Hipnotic and Rogue
- 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:
- Bring down the console and write playdemo demoname, e.g. playdemo e1m1_019
- Or open the Demos menu, browse for your desired demo file and click on it/press ENTER
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:
- The classic way
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, 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.
- Automatic recording
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:
- 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
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:
- 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
- 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)
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:
- You are not allowed to change the view pitch angles from the default cl_maxpitch 80 and cl_minpitch -70.
- Demos must be recorded on sv_protocol 15, not 666 or 999.
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:
- 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
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:
- Exit any liquid faster
- Enter and swim down in any liquid faster
- Stop after a wind tunnel faster
- Reach the exit trigger faster
- Bypass a trigger
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
- 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
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)
- 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
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
- 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:
- bind r "restart;pause"
- bind t "record x;pause"
- 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)
- 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.