Quake and Doom are trademarks of id Software Inc., Mesquite, Texas. This document is not a publication of id Software, who should not be associated with it. id Software will not answer any questions related to this document.
This document is Copyright (C) 1996 by Olivier
Montanuy.
All rights reserved.
Permission to use, copy and distribute unedited copies of this whole document is hereby granted, provided that no fee is charged for the use or availability of this document (other than the normal connection costs for on-line services, if applicable). The above copyright notice and this permission notice must be left intact in all copies of this document. Short excerpts of this document may be quoted in discussion groups or mailing list articles, as long as a reference to the full document is given.
Commercial distribution of this document, in whole or in part, requires prior agreement with the author. Commercial distribution includes any means by which the user has to pay either for the support (e.g. book, newsletter or CD-ROM) or for the document itself. Unauthorized commercial distribution is prohibited.
Disclaimer: this document describes the Quake file formats as we understand them, but we cannot guarantee that anything is correct. In fact, we could be totally wrong. We cannot be held responsible for any consequences of the use or misuse of the information contained herein. You have been warned.
A lot of thanks to:
Contributors to this document:
This document is an updated version of the Unofficial Quake Specs 3.1, adapted for the Quake Shareware release. This release is not compatible with the previous Quake Test1 release. The .BSP and .MDL file formats have changed.
Though this document is largely the result of hacking, it has been checked against the C code of the Quake utility. Some details could not be guessed by hacking. But the C code is so... special, that it's sometime easier to look at the bytes.
You will need some working knowledge of 3D geometry to understand this specification, and a good deal of patience too, because some (if not all) explanations may not be crystal clear.
Please do not make any full-featured editor working with the Quake shareware release.
Last, if you enjoyed editing Quake, don't forget to support id Software and to buy their products. Help feed John and Mike as they work on the next generation game engine!
The authors.
The latest version of this document will always be available on the official Quake-editing support site, http://www.gamers.org/dEngine/quake/spec/qspec-current.html.
You will also find it at the following locations:
Other sites will also have a copy of this document (according to the distribution rights stated above) but we cannot guarantee that those sites will have the most recent version. Usually, we upload the new versions on www.stud.montefiore.ulg.ac.be first, then on the other sites on the same day.
All the code structures are written in C, because C is all we talk. Well, it could have been worse. We could have written that specification in French.
0xABCD = hexadecimal number ABCD, in C convention. char = 8 bit signed integer, u_char = 8 bit unsigned integer (BYTE), short = 16 bit signed integer, u_short = 16 bit unsigned integer (WORD), long = 32 bit signed integer, u_long = 32 bit unsigned integer (DWORD), float = 32 bit single precision real (floating point).