135 ratings
Custom Singleplayer Levels
By negke
Finished the game and still crave for more? No problem. There is a plethora of user-made levels and mods you can try and occupy yourself with for months. This guide focuses on standard singleplayer levels with the same run-and-gun gameplay as the original game. It will give you an idea how to find, install and run them both the 'classic' manual way, or by using either the Quake Injector or the Simple Quake Launcher tool. It also has a short troubleshooting section.
Finding custom levels
Over the last two decades a vast amount of custom content has been created for Quake. Currently, there are over 1000 singleplayer levels (or "maps") of varying sizes and themes, with new ones being released every now and then, and hundreds of mods that range from small modifications to large total conversions of the game.
Many places and resources on the internet have disappeared over time, so finding a particular release can be tricky. Fortunately, in the case of (standard) custom levels, one does not need to go further than the map archive at Quaddicted[www.quaddicted.com]. This is where you will find all you need to get back into the action. As for gameplay-changing mods, which are not covered in detail in this guide (although there are a few similarities in terms of installation and running), a possible place to start would be ModDB.

  • Go to https://www.quaddicted.com.

    The site does not only host a large singleplayer archive, but also various other things like engines, tools, mirrors of defunct sites and FTPs, and a few general articles. The front page also shows some of the most recent releases and additions to the database.

  • Click on Maps[www.quaddicted.com] in the top menu.

    This is a long list of all map releases to date. You can just go through it and click on an entry, or perhaps even let the site pick one at random[www.quaddicted.com].

    The list can be sorted by categories. If you are yet unfamiliar with custom levels, it is a good idea to sort the list by (Editor's) "Rating" and pick releases from the Nice (4 hearts) and Excellent (5 hearts) results.

    It is also possible to use the filter at the top to search for specific criteria (note the tags on the right). For example, if you want to find maps whose style and enemy variety is similar to The Slipgate Complex (E1M1), filter for "base"; if you want to play only big maps, filter for "large", and so on. Filter keywords can be combined.

  • Click on a map title.

    This opens the detail page for the particular release with a brief desciption of the map itself, various information on the release and its contents, a screenshot, ratings and user comments.

  • Download the file by clicking on the ZIP link in the table below the screenshot.
Once you have downloaded a level, it needs to installed correctly. Depending on the type of release, getting it to run may seem quite complicated at first glance, but ultimately the process is not all that difficult once you get the basic idea. Keep in mind Quake is an old game from the DOS era, so it requires some 'more technicalized' steps than newer games.

  • Identify the type of release.

    Look at the files inside the ZIP. Most custom maps come as simple .BSP files along with a readme text of the same name that you should always check out first for potentially vital information. Others may have additional files, usually in subdirectories, or come as .PAK files which requires them to be run as a mod (while technically they are "mods", they are often still called "maps" for the sake of simplicity, since they do not contain fundamental changes to the gameplay). In the following, they will be refered to as "maps" and "mods".

  • Installing a map.

    A level that comes as a loose .BSP file is a very straightforward affair.
    It only needs to be copied (or extracted directly) into the game's maps directory at \Steam\steamapps\common\Quake\ID1\maps\ (or wherever your Quake installation is). If you have never played any custom levels before, you will need to create this directory manually.
    Once the files are there, proceed to the "How to run a map" section.

  • Installing a mod.

    A mod, in this case a level with advanced features like modified or new monsters, weapons, sounds etc, must go in a directory of its own in the game's root folder.
    Some of these releases already have their own mod directory in the ZIP so you can simply extract it right into the Quake\ folder (maintaining the directory structure of the ZIP); for those that do not, you have to create it manually. It should look like this \Steam\steamapps\common\Quake\moddir\* with either loose files (e.g. progs.dat) and subdirectories inside, or one or multiple .PAK files, or even a combination of both.
    Once everything is in the right place, proceed to the "How to run a mod" section.

  • Installing a map that requires a mod.

    It pretty much works the same way as a normal level, except instead of ID1\maps\ it goes into moddir\maps\ provided the required mod is already installed. For the most part, this is a somewhat rare case and usually mentioned/explained on the map page or the readme.
Running / Loading a level in game
Depending on whether you have a normal map or one that comes as a mod, the method to load it in the game differs. Sometimes additional settings are required (usually explained in the included text file).

  • How to run a map.

    If everything is installed correctly, simply start the game like you normally would. Then bring down the developer console by pressing the ~ or ^ key (the one below ESC).
    Here you can first select the desired difficulty using the skill # command. The difficulty values are 0 (easy), 1 (normal), 2 (hard) and 3 (nightmare). By default, the game starts on normal skill.

    To load the level, type map mapname (where "mapname" is the name of the .BSP file in ID1\maps\).

  • How to run a mod.

    If the level is installed in a directory of its own, it needs to be run as a mod which requires you to use the command line. In Windows, you can either open the command prompt from Start Menu/Accessories and navigate to the executable in your Quake folder, or simply press Windows key + R and drag&drop your Quake executable there. Then add -game moddir after the .exe (where "moddir" is the name of the newly-created or extracted mod folder) as well as any other necessary or desired command line arguments. For example: glquake.exe -game moddir

    This will start the game and make it load the new content from the mod directory. The rest is the same as running a normal level: select a skill setting and load the new level with map mapname (typically, it is either the same as the name of the ZIP file or the mod folder, but if not, check the readme).

    It is also possible to add the command line switches to the launch options in the game properties in the Steam library. However, this is not recommended as it will run the mod every time you start the game if you forget to remove the settings afterwards.
    There are several modern source ports that support the changing of the mod directory from within the game, so the process becomes more like loading normal levels, but at the same time it may keep certain mod-specific settings from being executed automatically.
Using the Quake Injector
If the manual way of installing and running custom levels sounds too complicated to you, do not let this put you off! There is an alternative to messing around with files and directories: the Quake Injector. It is a simple frontend tool that lets you install and run Quake levels with just a few clicks. It is based on Java (hence multi-platform) and uses the Quaddicted database.

  • Install Java.

    Go to http://www.java.com. Download the latest version of Java for your operating system and install it.

  • Install the Quake Injector.

    Go to the Quake Injector page[www.quaddicted.com] and download the latest version. The files can be extracted anywhere, but it is recommended to put them in a new folder inside your Quake directory. For example: \Steam\steamapps\common\Quake\QuakeInjector.

    Run the tool by doubleclicking on quakeinjector.jar.

    If the file type is not recognized, check if Java was installed correctly, or if you need to manually associate .JAR files with Java. The Quake Injector needs an active internet connection so it can access the Quaddicted database and download the files. Be sure to grant it appropriate access in your firewall / router settings.

  • Configure the Quake Injector.

    Once it is running, click on Configuation.

    Here, you need to set the path of your Quake directory, the download folder, which engine the tool should use to run the maps and which additional command line options it should execute. This is also where you can set your desired difficulty (unfortunately, there currently
    is no other way to do it) by adding +skill # [0-3]
    to the command line field.

    Enlarge the screenshot for an example configuration. If you have the Quake missionpacks installed as well, check the corresponding boxes (Scourge of Armagon = "hipnotic"; Dissolution of Eternity = "rogue") - if unsure, look for folders of the same names in your Quake directory.

  • Pick a level and play.

    This is self-explanatory. Just select an entry from the list, click on Install and the map will be downloaded and installed automatically. The Quake Injector will make sure all dependencies are installed as well, so if a map requires a certain mod to run, it will install both (excluding the official missionpacks).

    Then press Play and go.

    If a release features multiple maps, you can choose which one to start with from the dropdown menu.

    To remove a level after playing, select it from the list and click Uninstall. Note that this will not delete the downloaded ZIP. Maps that were not installed through the Quake Injector may appear as unchecked in the list and need to be downloaded again to be playable from within the tool.
Using the Simple Quake Launcher
Another useful tool for comfortably loading custom levels is the Simple Quake Launcher (SQL) by MaxEd. It is based on the Microsoft .NET Framework and runs on Windows only.
Unlike the QuakeInjector, this tool has no online functionality, so it requires custom maps and mods to be installed manually, but it can easily detect already installed content and launch it with just a few clicks.

  • Install Microsoft .NET Framework

    Chances are it is already installed on your system. Check the programs list in your Control Panel.
    While the SQL readme states that .NET Framework version 3.5 is required regardless whether newer versions are installed, it seems to work just fine with the latest version alone (4.5+). If you do not have .NET Framework installed, go to https://www.microsoft.com/net and download / install it.

  • Install the Simple Quake Launcher

    Go to https://sourceforge.net/projects/simplequakelauncher and download the latest version of SQL. Then simply extract the files directly into your Quake base directory.

  • Install custom maps

    Go to Quaddicted[www.quaddicted.com] and install some maps as explained in the 'Finding custom levels' section of this guide if you have not already done so.

  • Run the Simple Quake Launcher

    Navigate to your Quake directory and double-click on SQLauncher.exe.

    The tool detects all maps, mods and engine ports in your Quake directory and lets you select the ones to load in the corresponding dropdown menu.

    Engine is the Quake executable to run the game with. The Steam installation comes with WinQuake and GLQuake.

    Resolution determines the screen resolution the game will use. Leave at "Default" if your engine port saves the resolution in the config.

    Game is the mod directory to load; select "Default" for standard Quake, "hipnotic" or "rogue" for the official mission packs.

    Map is the level to load. It shows all maps installed the mod directory selected in Game, including the original levels.

    Skill is the difficulty setting to play on.

    Extra Args can be used for additional settings if desired or required. See the maps' readme files for information.

    After selecting the desired settings, simply click on Launch! to play.
Notes / Troubleshooting
While most of the available levels can be run and played by following the steps explained in this guide, some of them may require further attention. Sometimes it is necessary to adjust certain settings for the level to look and play as intended, at other times it is even required to use a special engine source port. Usually such requirements are mentioned on the download page of the map and in the included readme document, so both should be read carefully to avoid possible confusion.

Custom engines / Source ports
The Steam installation of Quake comes with the old and outdated WinQuake.exe and GLQquake.exe. Since the engine source code was released by id Software, a large number of modified Quake executables (so-called "engine or source ports") have appeared, all of which include various bugfixes and additions as well as support for different platforms. Some of the ports feature subtle tweaks and changes, yet are still lightweight and remain faithful to the original engine. Others add many advanced technical and visual features that can change the look and performance of the game considerably. Additionally, some engines are geared towards singleplayer, while others are predominantly multiplayer-focused.

It is not a bad idea to switch to a modern source port for playing Quake and custom levels in particular. However, due to the large number of available ports and often subjective recommendations, choosing the right one can be tricky. Check out this Steam guide for a rough overview: http://steamcommunity.com/sharedfiles/filedetails/?id=118401000
Something to note and keep in mind: there are custom levels that can only be run on ports with increased map limits due to their size and structure - the original engine was designed for relatively small maps and contemporary system specs. Some maps make use of special engine features that may only be available in a single or a small number of ports. In some cases, compatibility issues between maps and certain ports can occur because of the design and inner workings of both.

Here are some of the most common errors when trying to run custom levels and how to fix them.
  • Upon loading a map the game crashes with Hunk_Alloc: failed on ####### bytes.

    This means the engine does not have enough memory to load the level. This typically happens with very large or detailed maps. Quake can be set to allocate a bigger memory heap by using the -heapsize command line switch, for example: glquake.exe -heapsize 64000

    It is recommended to permanently put this in the Launch options in the game properties inside the Steam client: just add the line -heapsize 64000. It will make the game run with 64MB memory instead of 16 (Winquake) or 32 (GLquake) which is enough to load the vast majority of levels. Note that the memory heap is only important when loading a level - increasing it further will not improve performance.

  • Running a software engine like WinQuake, items flicker or disappear and parts of the level are greyed out.

    The level architecture is too complex for the low limits set in the software engine. They can be increased with the r_maxsurfs and r_maxedges commands in the console. Set both to something very high (not too high as it comes at the cost of performance - may take some experimenting) before loading the map.

  • While playing, the game sounds are suddenly muted and "packet overflow" warnings appear.

    This typically occurs in large areas with many enemies and projectiles or gibs flying around. It means there are too many things happening at once which exceeds the standard size of the network packets (information exchanged between server and client). In most situations, this goes away by itself after a couple of seconds. Sometimes, however, a map is too big, open or crowded, so standard clients will choke most of the time. The only thing that helps in such a case is using an engine port with increased limits or playing the map with a coprse removal mod.

  • After loading a map the console shows No spawn function for: EDICT ##" warnings.

    This suggests a map which requires a certain mod is loaded in standard Quake or the wrong mod directory. Check the readme again and verify if everything is installed and run correctly.

  • Either on map load or while playing, the game crashes with ED_Alloc: no free edicts.

    This happens if there are too many dynamic entities in the map, typically in large maps or big battles with many projectiles flying around or groups of monsters exploding into gibs at the same time. The only way to fix this is using a source port with increased limits.
< >
AgonyEater. May 10, 2021 @ 1:48pm 
quake injector gives me an error allways. java exceptino and jni error
Phobos Sep 20, 2018 @ 4:17pm 
Hi, are you aware of a problem with elevator being stuck using Darkplaces engine ? I've been confronted to this problem recently using the latest builds, I've never had problems like this before... Basically, for example on the first map, if you get to the lift in the river opening the secret door, it doesn't go down, and if you wait for the door to close, you can't open the door, and the lift is stuck, meaning you have to restart the map. Happens to various places, didn't see the problem mentioned anywhere...
negke  [author] Feb 3, 2016 @ 2:32am 
Okay, set to English now. Thanks for the heads-up.

I've also added a new section to the guide, describing how to load levels with MaxEd's SQLauncher.
flp Jan 30, 2016 @ 3:17pm 
When I click on "Guides" -> "Top Rated of all Time" a filter "Language:English" is applied and this guide won't show up. It only showed when I removed the filter. Can you please recheck the language specs for this guide so more people can see this.
negke  [author] Feb 11, 2015 @ 2:10am 
That would be too many to list. Generally, you can't go wrong with everything rated 4 or 5 hearts at Quaddicted - the maps list can be sorted by rating. Or filter by year and work your way back in time - pretty much every map released in the last couple of years was good.
mh0 Jan 11, 2014 @ 9:03am 
Nice work! This will help the steam folks connect to the greater quake verse.
Sony Toprano Jan 3, 2014 @ 5:16pm 
don't forget to rate this up!
Sony Toprano Jan 1, 2014 @ 11:19am 
good guide!
JLaw Aug 5, 2013 @ 11:47pm 
Outstanding. I'm glad you bit the bullet on this topic.

Now we just need a guide for recommendations. :-)