General rules and guidelines for packaging and publishing playable Quake files
This page is about how to package a Quake map / mod release.
These rules and guidelines are based on how most Quake engines work, as well as general community etiquette and consensus developed over the past few decades.
Quake was made in 1996, its core technology is over 26 years old. And like any 26 year old, it's too late to change anything bad or annoying about them. We have to figure out how to live with it.
No spaces in any folder or file names.
All lowercase letters. (Some Quake engines + OS are case-sensitive, some aren't.)
Avoid using numbers or punctuation at the start.
Use common .ZIP compressed format, do not use uncommon esoteric formats like .7Z or .RAR that require special tools.
Map package (simple): put everything in the root of the ZIP, no subfolders.
Good for simple single map releases / your first map.
Mod package (complex): put everything in a mod folder, then ZIP the whole mod folder.
If you are only distributing map-related files (.BSP / .LIT / .MAP / .TXT) then it is OK to do the simplest packaging method:
To package a single map, place all files at the root of the ZIP file, with no folders or subfolders inside the ZIP.
A common structure where players understand they must unzip it to the correct maps folder themselves. We assume this is /Quake/id1/maps/ unless there are instructions otherwise.
If you use custom code or assets, then package your Quake release as a mod:
To package a mod, place all files in a big "mod folder" inside the ZIP file.
However, mod folders must follow specific folder names and structure...
Mod folder name must be all lowercase alphanumeric with no spaces.
Map files (.BSP, .LIT) must be in a mod subfolder /maps/
Do not use any subfolders. Maps must stay at the root of /maps/
Some mods package everything inside a .PAK file to simplify distribution and avoid this file folder soup. A .PAK file is like a .ZIP file, Quake engines load the files inside it with folders intact. For more info on PAKs, see .
To package a partial mod, include several mod subfolders at the root but no main mod folder.
Include clear instructions about where to unzip.
Good for when you have only a few custom assets.
Mostly for maps intended as add-on for a big existing mod like Arcane Dimensions.
It is impractical to include the entirety of the parent mod with your release. Users likely have their own existing mod install already.
For a video intro to file structure and packaging, see David Spell's video tutorial from 4:08 onwards:
Test yourself. Is this a good or bad example? Click the arrow to reveal the answer.
We have many links to more .
Learn more about general practices.
This way you can include custom assets and game code.
It's also common to do this for small releases too, even if they aren't full mods.
Skyboxes (.TGA) must be in mod subfolder /gfx/env/
Again, do not use any other subfolders.
Sounds (.WAV) must go in mod subfolder /sound/
Additional subfolders encouraged here. Use a unique sound subfolder name to avoid file conflicts, e.g. /sound/mymodname/
Models (.MDL) must go in subfolder /progs/
Additional subfolders encouraged, like with sounds.
Game code (progs.DAT) must be in the root of the mod folder.
📦 myzipfile.zip
↳ mymap.bsp
↳ mymap.lit
↳ mymap_readme.txt📦 myzipfile.zip
↳ 📁 mymodfolder
↳ 📁 gfx
↳ 📁 env
↳ skybox_up.tga
↳ (etc)
↳ 📁 maps
↳ mymap.bsp
↳ mymap.lit
↳ 📁 sound
↳ 📁 mymodname
↳ mysound.wav
↳ progs.dat
↳ readme.txt📦 myzipfile.zip
↳ 📁 gfx
↳ 📁 env
↳ skybox_up.tga
↳ (etc)
↳ 📁 maps
↳ mymap.bsp
↳ mymap.lit
↳ 📁 sound
↳ mysound.wav
↳ mymod_readme.txtModels, textures, sounds, tutorials, and other links for Quake mapping and modding
Download the Quake Level Design Starter Kit (Windows and Linux only) by Jonathan Linat, which contains a lot of recommended tools and assets for single player Quake 1 mapping, all collected in one convenient bundle. This is the easiest way to get started.
If you're interested in Quake mapping and modding, we strongly recommend joining a Quake community. It's the best way to learn! Experienced people can give you tech help, advice, and feedback on your work. Some have even been modding Quake for 20+ years.
is the biggest public social hub, beginner-friendly with frequent single player design jams and social opportunities
For Quake 2, try instead.
For multiplayer Quake, try and instead.
get TrenchBroom level editor (included in Level Design Starter Kit linked above)
for useful map measurements and combat stats + design advice, see
for more about releasing maps and mods, see .
After you know the basics of map construction and feel somewhat comfortable in the editor, learn about more complex design and building patterns:
(2001) on Quake architecture by Xenon
(200x) on building "CZG curves" by Christian Grawert
+ by David Spell
for more on Quake's influence on level design, see
To play Quake maps, you must compile (bake, package) the editable .MAP into a playable optimized .BSP file. You will need both tools and a graphical user interface (GUI).
Compile tools: (already included in Quake Level Design Starter Kit)
qbsp.exe builds 3D mesh + detects "leaks" ()
vis.exe calculates to optimize map performance
many mods package .MAP source files with the public release, just look in the mod folder
trenchbroom_quake_map_source.zip is a collection of the original Quake 1 .MAP source files () but converted to modern file format (TrenchBroom compatible) + fixed texture references (with repackaged Quake101.wad), thanks to Atul "toolness" Varma
for more about parsing and working with .MAP files in code, see
To play Quake (and playtest your own maps or mods) you need a source port -- a Quake engine that "ports" the original 1996 engine code and add many new features / compatibility.
We only list free open source ports in active ongoing development. ()
In Quake modding culture, it is generally considered normal and acceptable to rip models, sounds, and textures from other maps and mods, as long as you credit the original authors.
However, if you rip textures and assets from a .BSP, you'll usually have an incomplete fraction of the full kit. It'll likely be difficult to use. In these cases (e.g. the Makkon set) you're better off finding the full official public texture releases.
Quake texture collections are stored in .WAD files. To use textures in a level, download a .WAD and then add the WAD path to the .MAP file using the level editor. (Note: this is not the same as a Doom WAD. Quake WADs are only for map textures.)
When compiling a map into a playable .BSP file, all used textures are automatically embedded directly inside the .WAD file. You can rip textures from compiled maps using a tool like .
by Khreathor is useful for blockout and prototyping.
contains all the Quake textures in one collection, or you can just download if you want to stay strictly within a traditional theme.
is a medieval library themed texture set by Kell
contains many .WADs but it's somewhat unorganized.
has a similar pile of unorganized WAD files
has a small but growing archive of better organized WAD files
The most common WAD creating / editing tools are and , which can browse WADs and convert textures for you easily.
If you are going to modify WADs frequently, you can automate the WAD building process via batch processing via command line interface (CLI) with .
Use TexMex or to extract textures from a compiled .BSP map file
Quake has two different sky systems. The original 1996 sky system is a two panel texture parallaxed over itself. Newer Quake engines support a more standard cubemap-style skybox made of 6 static .TGA textures, each corresponding to one side of the skybox.
Mods add new functionality and features for mappers to use in their levels. Listed below are common Quake mods and toolkits used by single player Quake mappers.
is a popular recent mod / toolkit that adds many new monsters and features.
install the latest version of Arcane Dimensions ( as of January 2022) if you want to make your own mod based on AD, get the slimmed-down dev kit instead
add the /ad/ mod folder and ad_1_8.fgd in your map editor
read the included ad_v1_80_documentation.txt for info and advice
is a recent "base" themed mod / toolkit that adds sci-fi themed monsters and weapons.
install (minimal dev kit available)
add the /alkaline/ mod folder and alkaline.fgd in your map editor
read the included docs.html Alkaline mapping manual
is a minimalist "refinement" mod that rebalances vanilla Quake gameplay and adds quality-of-life features for mappers. It is good for a "vanilla+" feel without vanilla bugs.
install
add the /copper/ mod folder and copper.fgd in your map editor
read the for info and advice
is a recent dev kit mod that adds new mapper features, but doesn't add any new monsters or weapons, it's still basically the same old vanilla Quake gameplay.
However, because it exposes so much functionality, it's possible for mappers to add some new game features without coding in QuakeC.
To map for the new "Horde" mode added in the Quake 2021 re-release:
download the special Horde mode .FGD file and load it into your map editor
in the editor, add a single horde_manager entity, this is the brain of horde mode
in the editor, add info_monster_start entities for where you want monsters to show up. You can also toggle a info_monster_start, which lets you do progression stuff.
See the example Horde mode .MAP source file for usage:
for a list of 3D art tools, see
To make custom monsters, weapons, items, or props, you must export a 3D model.
The original Quake models are stored in .MDL files in a sub-folder called /progs/ . The MDL format reflects the memory limits of 1996 PCs:
Max triangles: 2048; max vertices: 1024
Textures: 8-bit palettized; max UVs: 1024
Max vertex animation frames: 256 at 10 FPS
for more info on MDL file format and parsing, see
The 2021 re-release, as well as more recent fan engines, have added much more modern file support with much higher memory limits and skeletal animation support.
Model data stored in .md5mesh file
Animations stored in .md5anim file; can load multiple .md5anim files for one model
Textures are .tga, bind with .mtr material definition file
Get the by Taniwha, Khreathor, and Jazzmickle.
see docs for , , , and
by Fairweather
Fairweather has made some great beginner video tutorials on using Blender to model for Quake, no prior Blender or 3D experience required:
Get the by KozGit.
read the documentation thoroughly, it's a little complicated
community is still figuring out best practices / pipeline... ask questions and shares notes in QM Discord #modeling-and-texturing
Quake game code is written in a special programming language called QuakeC. It has many historical quirks and it can be tricky to learn, but once you figure it out, it's fun.
"clean and fixed" original Quake v1.06 source code with bug fixes:
useful as a base for a vanilla style mod
progs_dump mapping toolkit source code:
There's a by Joshua Skelton.
FTEQCC is probably the most modern compiler available, with plenty of compilation options and enhancements. You can choose between GUI version and a command line version:
Quaddicted is the main single player Quake map archive, currently in the middle of an extensive rebuild (as of 2024).
Func_msgboard is the longest running Quake level design web forum, but maybe not as newbie-friendly as QM Discord or Slipseer
The QuakeCast is a long-running podcast series where David "dumptruck_ds" Spell interviews various Quake community members and discusses new releases
or start with Andrew Yoder's text tutorial (covers basic setup + making your first room)
after you know the basics, check out the Quake Builder video tutorials by MarkieMusic
"The Door Problem of Combat Design" (2019) by Andrew Yoder is a solid introduction to tuning Quake encounters
"Balancing Skill Levels for Quake" (2024) by Lunaran is a good primer for various item placement / traversal design patterns
"Quake Renaissance" (2021) series about Quake culture by Robert Yang
Bal's Quake Mapping Tips & Tricks (2022) by Benoit "Bal" Stordeur is a crucial must-read for intermediate / advanced Trenchbroom construction techniques.
light.exe bakes lightmaps and shadows, makes lighting happen
STRONGLY RECOMMEND viewing light.exe examples + light.exe docs
Compiler GUI: choose either TrenchBroom's built-in compile window or Necro's Compiling GUI (both already in the kit too)
open the example test maps in an editor to learn how to use the new systems
works in 2021 re-release engine ("KexQuake"), Quakespasm-Spiked, and FTE
current community-standard engine for single player; bundled in Quake Level Design Starter Kit
previous community-standard engine for single player
many features + wide compatibility beyond Quake 1 file formats, good for making standalone games
common multiplayer Quake ("QuakeWorld") bundle but lacks many single player / graphics features










