for Quest version 2.x
Manual copyright 1998 Alexander Malmberg <firstname.lastname@example.org>
copyright 1997, 1998 Alexander Malmberg
copyright 1996 Chris Carollo and Trey Harrison
What is Quest, you ask. Quest is a free, fully featured map editor for Quake and Quake 2. It was originally written by Chris Carollo and Trey Harrison, but they stopped working on it, so I (Alexander Malmberg) picked it up.
If you're a newbie, to Quest or Quake/Quake 2 editing, you should read this entire document. You should then try to follow the box room tutorial. After that, you should at least understand the basics of editing with Quest.
You can find this document at the new "Official" Quest homepage: http://www.frag.com/quest/. It has its own section, so you can browse it online, or you can download it, along with all the pictures, as a zip from the Downloads section.
This document was written entirely by Alexander Malmberg. It isn't based on the original Quest documentation in any way, although I have used it for reference sometimes. If you have any comments, bug reports, spelling errors, or other feedback, contact me (see e-mail address above).
This document was designed to be viewed in 1024x768 or higher resolution. The screenshots are 800x600 because it will then fit on the screen, without being to small.
1.4.1 - Quake
After you generated your wad file, you probably want to select a default wad file in quest.cfg. If you load a map, Quest will automatically use the wad file specified in that map.
If you want to use a wad file other than the default one in your map, you can select a new one with 'Textures->Select textures'. The dialog presented will be a standard Load/Save dialog, described elsewhere in this document.
1.4.2 - Quake 2
Games/TCs based on Quake:
Games/TCs based on Quake 2:
If you have Quest configured for Quake 2, Quest will build a list of all textures the first time you run it. This might take some time, but when you start Quest the next time, it'll be much faster. The texture list will be in the file textures.dat. If you add new textures to your texture directories, you must regenerate this file. To do that, delete it, and the next time you start Quest, it will be regenerated.
Quest has some command line parameters you might want to use. They all have a long name, preceded by two dashes ('--'). Some also have a one letter short name, preceded by one dash ('-'). They are case sensitive. The parameters are:
Note: When I say Quake in this part, I mean Quake or Quake 2, and it probably also applies to all other games that use the Quake or Quake 2 engine.
Before we proceed to teaching you how to use Quest, you need to know some basic stuff about Quake maps. Even if you've already made maps with another editor, you might want to read it anyway, as it tells you how Quest handles some of this stuff.
A Quake map consists of two things: entities and brushes. There is nothing else (from a map designers point of view, anyway).
2.1.1 - Entities
Everything in a Quake map is represented by entities. The map geometry, movable stuff like doors, platforms, and player starts, monsters, powerups, etc. It's all entities.
An entity consists of a number of keys and values, and can also have brushes attached to them. Key/value pairs are used to describe the entity. Quest allows you to edit any key you want, but Quake only uses some of them. Two common keys are:
A brush is a closed, convex, polyhedron. A brush consists of several, at least four, faces. Brushes are used to define the geometry of the map, like walls and rooms. All brushes are attached to an entity. The standard map brushes are attached to the worldspawn entity.
The system for Quake 2 texture handling is centered around the texture cache. Only the textures in the cache will show up in the texture picker (fullscreen or not). When you load a map, all textures used in that map will be added to the cache. When you start a new map, the cache will be empty. Before you can use a texture in your map, you must add it to the cache. To do this, use the Quake 2 texture adder. There is no way to remove textures from the cache. However, you can use the Reread cache menu command to have Quest flush the cache and reread it, which means only the textures actually used in the map will be left in the cache. Quest will load and save which textures are in the cache, even if they aren't used in the map.
However, textures can't be skewed, so if you skew a face with texture locking on, it will have unexpected results. Note that rotating tilted faces, or rotating a face around several axises might cause the face to be skewed. So before you submit a bug report to tell me texture locking won't work, bring up the face in the face editor and try to align it yourself. If the face is obviously skewed in the face editor, there is no way the texture locking could preserve the alignment.
Quest can still load and save the old map format. When loading a map, Quest will automatically detect which format it is. It can even handle mixed files. What Quest saves is controlled by map2 in quest.cfg, and this can also be changed in the Preferences dialog.
From the Quest site you can download a version of qbsp3 that can load both the new and old map format. If you use this qbsp3, you can use the new map format just like the old one, everything will be handled transparently by Quest and qbsp3. If you don't bother about vertex drifting, set map2 to 0 and everything will be just like before.
This is a typical Quest screen. As you can see, it's divided into 5 parts:
3.1.1 - The status area
The status area is the bar at the top of the screen. To the left it says Quest, in case you forget. To the right, is tells you which mode you're in. The center contains different information in different modes. A description of this information can be found in the description of that mode.
3.1.2 - The message area
The message area contains general messages about what Quest is doing, or instructions for you. You can scroll the message list forward and backwards with the two buttons to the right.
3.1.3 - The menu
The menu is located at the right edge of the screen. With it, you can access many commands. Navigating should be obvious. Click on the text. If it's a command, it will be executed. If it's a sub-menu, the new menu will be expanded, as seen above.
Depending on your configuration, the menu might be visible always, only when you move the cursor to the right edge of the screen, or it might pop up when you right click.
Description of the menu items:
|New||Creates a new map, deletes the current one.|
|Load||Load a map. Brings up the general Load/Save dialog.|
|Save||Save your map. Do this often.|
|Save As..||Allows you to choose a name for your map, and saves it. You should do a save as to choose a name before you start saving your map with the Save command, or the map will be saved to new1.map.|
|Load Group||Loads a group previously saved with Save group. Kindof like prefabs. Brings up the general load/save dialog.|
|Save Group||Save a group. Allows you to pick one of the groups on your map and save it. Uses the standard load/save dialog.|
|Load PTS file||Load a pts or lin file.|
|Exit||Exits Quest (bet you never guessed that).|
|Cube||Creates a cube.|
|Prism||Creates a prism. Prompts you for stuff like number of sides and radius.|
|Room||Creates a room, i.e. six square brushes.|
|Rotate||Rotate the selected brushes.|
|Scale||Scale the selected brushes.|
|Snap brush||Snap selected brushes to the grid.|
|Snap vertices||Snap selected vertices to the grid.|
|Delete||Delete selected brushes.|
|Subtract||Does a CSG subtraction.|
|Intersect||Does a CSG intersection.|
|Make hollow||Does a CSG make hollow.|
|Make room||Does a CSG make room.|
|Create||Create an entity. Brings up the entity picker.|
|Edit||Edit the selected entities.|
|Rotate||Rotate selected entities, i.e. change their angles.|
|Delete||Delete selected entities.|
|Create||Create a model. Brings up the entity picker.|
|Add to||Adds the selected brushes to the selected entity.|
|Edit||Edit the selected entities.|
|Delete||Delete the selected entities.|
|List||Brings up the model list.|
|Create Link||Creates a link, i.e. sets the target and targetname keys.|
|Build BSP Tree||Rebuild the BSP tree used for BSP, textured, and grey shaded preview.|
|Group||Brings up the Group popup.|
|Def texture||Brings up the texture picker. Allows you to pick a default texture, or apply a texture to the selected brushes/faces.|
For Quake, lets you pick the wad file this map should use. Brings up the
standard load/save dialog.
For Quake 2, lets you pick textures you want to add to the texture cache. Brings up the Quake 2 texture adder.
|Reread cache||For Quake 2. Flush and reread the texture cache. This removes all textures from the cache that aren't actually used in the map.|
|ReInit Camera||Reinits the camera, i.e. finds a player start and places the camera there.|
3.1.4 - The toolbar
The toolbar gives you access to some often used commands.
|This button creates a cube.|
|This button switches you to brush mode and then, eh, does nothing.|
|This button does the same thing as the last one, i.e. nothing.|
|This button copies the selected brushes.|
|This button brings up the texture picker.|
These buttons are used to look around. From left to right, they:
The viewports are probably the most important area of the Quest screen (which is why I saved them for last). Quest has three viewports, as you can see. They are used for viewing and editing your map. If you want more space for your viewports, you can make the menu pop up and down on request.
One viewport is always active. It has a white frame, while the other viewports have grey frames.
Keys used to control the appearance of the current viewport can be found in the editing part.
This is the dialog used to load and save various files. Directories to the left, files to the right. You can type your own name in the box just above the buttons. Just click in the box, and type away. To switch directory/drive click on it. To select a file, click on it. Easy! Press the left button (load, save, or whatever) when you're done. Press the Cancel button to cancel.
This is Quest's general entity edit dialog. It's divided into three parts.
At the top, Quest displays help about this entity, if there is any. Use the two buttons to the right to scroll up and down.
In the middle there's a list of all spawnflags for this entity. Click on them to switch between 1 and 0. This will automatically add/update/remove the spawnflags key as needed. A x means that that spawnflag doesn't have any meaning. The two first columns contain spawnflags specific for that classname, and a description should be found in the help area. The third column contains four general spawnflags that all entities have. They control which difficulty level this entity WON'T appear on. Thus, if you set the !Easy spawnflag to 1, the entity WON'T appear when you play Quake/Quake 2 in the easy difficulty level. By default, an entity appears on all difficulty levels.
The bottom part is a list of all currently set keys/values. If you have many keys, you can scroll up and down with the two buttons to the right. To add a new key, click in the lower left box (just above the buttons). Enter the key and press enter. Quest will now move to the next box. Enter the value and press enter. The key/value should now appear in the list. To remove a key/value, click on it to select it and press the Delete key button. To change a value, click on the key/value to select it, then click in the lower right box and enter the new value. To change a key, you must delete the old one and add a new one.
Quest can help you edit some keys. They will be displayed in grey instead of black. You can edit them normally, or you can select one and press the Edit button, or simply click with the right mouse button on it. For supported keys, this will bring up a dialog designed to make editing that key easy. See below for more information about supported keys.
The Done button closes the dialog. The Clear button clears the two input boxes at the bottom.
Here is a list of common keys and how Quest helps you handle them.
3.3.1 - classname
The edit dialog for this key is the entity picker. Here you can easily pick a new classname.
The edit dialog for this key will give you a box with a preview of the color. To the left are controls for changing the red, green, and blue portion of the color. Upon entering and exiting the dialog, Quest will normalize the color, ie. it will change it so that the largest value is 100 (unless all of them are zero, it won't touch them then).
This is Quest's normal texture picker. I hardly ever use it. To the left there's a list of all textures. You can scroll it up and down with the buttons. Click on a texture to see it in the area to the right. You'll also see it's size just below.
The OK button selects this texture and closes the dialog. The Cancel button closes the dialog but discards all changes. The PalSwitch switches between Quest's and the game's palette (why would you want to do that?). The Fullscreen button brings up the fullscreen texture picker, described below. The Add textures button brings up the Texture adder.
This is Quest's fullscreen texture picker, and is what I use to select textures. You can reach it by going to the normal texture picker and pressing the Fullscreen button.
The fullscreen texture picker will show you all textures, as seen above. By moving the mouse past the left and right edges of the screen, you'll be able to scroll around (it's hard to explain, try it). If you position the cursor over a texture, you'll get some information about it at the bottom of the screen. To select a texture, click on it. This will bring you back to the normal texture picker, with that texture selected.
This dialog is used to add textures to the texture cache. To the left you'll have a list of all textures and sub-directories in the current directory. Click on a directory to go to it. Click on a texture to bring it up in the right part of the screen. To actually add it to the cache, you have to press the Add button. The Add all button will add all textures in the current directory to the cache.
You can also navigate this dialog with the keyboard. Use up and down to move around. Press enter to switch directories or add a texture. Press home and end to move to the top/bottom of the list. If you press a letter, Quest will jump to the first texture whose name starts with that letter.
If you press the Fullscreen button, Quest will bring up the fullscreen texture picker with all textures in the current directory. Textures already in the cache will have a white frame. To add a texture to the cache, click on it. When you're done, right click.
When you've added all the textures you want, press Done to close the dialog.
The entity picker is used for selecting which entity you wish to create with the Create entity and Create model command. It's organized sortof like the menu. You'll get a list of all groups of classnames. If the name ends with an underscore ('_'), click on it and it will be expanded as above. To get back to the top level, click on Classnames at the top. If it ends with something else, it's a classname. Click on it and it will be selected.
When you've selected the classname you want, press OK. If you discover you don't really want to create a new entity, press Cancel.
This is Quest's group popup. It's used for all aspects of editing groups. It will present you with a list of all groups in the current map. Scroll the list up and down with the buttons on the right. The meanings of the columns are:
|C||Color. The color of the brushes in this group. Click on a square to cycle through the available colors.|
|S||Smart select (or something like that). If this button is pressed, the group will use smart selecting, which means that if you select one brush from the group, all brushes in that group will be selected.|
|H||Hidden. If this is pressed, the group will be hidden. Useful when editing large maps.|
|Name||The name of the group. Click on this to select a group.|
The world group will always be present on a map. By default, it contains everything. It can't be deleted. Any brushes or entities you wish to modify must be selected before you enter this dialog.
To create a new group, select some brushes or entities and press Create. You will be prompted for the name of the group. The selected brushes/entities will be moved to that group.
To delete a group, select it and press the Delete button. All brushes and entities in that group will be moved to the world group.
The Add button moves the currently selected brushes/entities to the selected group.
The remove button moves all the currently selected brushes/entities to the world group.
When you're done, press OK.
The model list will present a list of all models in the map, i.e. all entities without an origin key, and the number of brushes they contain. Scroll up and down with the buttons to the right. To select a model, click on it. To delete a model, select it and press the Delete button. To edit a model, select it and press the Edit button, and the entity edit dialog will be brought up.
This dialog is mostly useful for finding and deleting models without brushes, which can't be accessed any other way.
This dialog allows you to change some settings from within Quest. Click in one of the boxes to the right, enter the new value, and press enter. Hit OK when you're done, or Cancel to cancel.
The things you can change are:
All these settings are saved when you exit Quest.
This brings up some information about your map, i.e. number of brushes, entities, and models. It will also tell you the last used target/targetname with the format t?, where ? is a number, and the last team with the format team?, where ? is a number. The Create link command sets the target/targetname key/value according to this format. If you want to set targets or targetnames manually, or want to use teams (for Quake 2), just add 1 to the number to get the next free one.
This dialog allows you to edit the Quake 2 specific surface fields on the currently selected faces and faces on the selected brushes. There are several flags, with a button left of them, containing a 1, 0, or a question mark ('?'). If all selected faces have this flag on, it will be a 1, if it's all off, it will be a 0. If it's mixed, it will be a question mark. Press the button to cycle through these alternatives.
The value will also be a question mark if it's mixed, otherwise, it'll contain the value of the selected faces. To edit it, click in the box and type the new value.
All faces on a brush should have the same contents, although they can have different surface flags.
The meanings of the contents are:
|SOLID||You don't need to set this, unless you want to force an otherwise different brush (e.g. water) to be solid.|
|WINDOW||This should be set on brushes that are to be transparent windows.|
|AUX||Transparent stuff that isn't windows? Don't really know. Never used it.|
|LAVA||Set this to get a lava effect, i.e. you'll lose health if you step in it.|
|SLIME||Set this to get a slime effect.|
|WATER||Set for water brushes.|
|MIST||Brushes you can walk through.|
|AREAPORTAL||Probably an internal thing. Don't use.|
|PLAYERCLIP||Non-displayed brush that the player can't walk through.|
|MONSTERCLIP||Non-displayed brush that the monsters can't walk through.|
|CURRENT_0 .. CURRENT_DOWN||Used for flowing water, makes the water push you in the direction(s) specified.|
|ORIGIN||Set this for origin brushes, i.e. brushes used for specifying the center of rotation for rotating models.|
|DETAIL||Set this to make this a detail brush. Detail brushes aren't used when computing the PVS (with qvis3), so marking brushes as detail brushes speeds this up. However, brushes that are necessary to prevent leaks, like walls, shouldn't have this set. Use it only for things that don't block the view anyway.|
|TRANSLUCENT||Internal thing. Don't use.|
|LADDER||Set this to make a ladder. Brushes with this set can be climbed upon.|
And the surface flags are:
|LIGHT||Set this, and the brush/face will emit light. The value specifies the strength of the light. When computing the light, qrad3 also takes the area of the face into consideration.|
|SLICK||This is supposed to make the face slippery, like ice (I think).|
|SKY||This indicates that the face shouldn't be drawn. Instead, the sky will show through it.|
|WARP||Indicates that the texture should warp and swirl, like water and lava. Forcefields should have this set.|
|TRANS33||Object is 33% opaque. More transparent than TRANS66.|
|TRANS66||Object is 66% opaque. Less transparent than TRANS33.|
|FLOWING||If you have water with one or more of the CURRENT_ flags set, you might want to turn this on, so the texture moves, too.|
|NODRAW||Indicates that this face shouldn't be drawn.|
|HINT||A hint brush will a primary BSP tree splitter (sortof). It's hard to explain. You don't need to use these too much, anyway.|
|SKIP||Skip brushes are never used to split the BSP tree. I don't know why you'd want to use this.|
By default, a face gets it contents and flags from the texture it has. Almost all water, lava, window, slime, light textures, etc, already have the proper flags set. If you want to return a face to the original flags, set all the flags and the value to 0 and press OK.
This dialog is used to align textures on a face. Only one face can be edited at the time. To the left is an area containing a preview of the face. To the right you can the values controlling the alignment. Below the preview is the name of the texture on a button. Press this button to select another texture (brings up the texture picker).
The OK and Cancel buttons do just what you'd expect them to. The Next and Prev buttons selects the next/previous face on the brush the current face is on.
The Auto align button tries to automatically align the texture. This is quite crude right now. It will adjust the scale and shift to make one copy of the texture fit into the face. If the face isn't rectangular, parts will be clipped away. It won't rotate the texture, either.
With this dialog, you can build maps and run Quake/Quake 2 without having to exit Quest.
The five first buttons run go1.bat - go5.bat with the first parameter being the name of the map file. This will output the entire map.
The last button saves only the visible part of the map, i.e. the groups that aren't marked as hidden, and run go1.bat with the first parameter being the name of a temporary map file with the visible portion of the map.
Note: When saving the visible part of a Quake 2 map, Quest will automatically save six identical brushes along the boundaries of the map, so there aren't any leaks.
You'll have to edit the go1.bat - go5.bat files yourself, so they match your directories and settings and taste.
Note that Quest remains fully in memory while executing this, so the building utilities will have less memory to work with than usual.
If you change your mind while in this dialog, press Cancel to cancel.
When you edit maps with Quest, you'll always be in one of Quest's four modes, which are:
|Tab||Switch to the next mode.|
|Shift-Tab||Switch to the previous mode.|
|Ctrl-S||Save the map. If you've created a new map, you need to do a Save as to select a name for it, or it will be saved to 'new1.map'.|
|Ctrl-I||Brings up the map info dialog.|
|Ctrl-P||Brings up the preferences dialog.|
|Alt-R||Reinits the video system. Taskswitching under Windows 95 might corrupt the screen. Use this to restore it.|
|Alt-B||Brings up the build popup.|
|Alt-G||Brings up the group popup.|
|K||Check the map for errors. Will autozoom to brushes with errors, if any.|
|F8||Take a screenshot to quest000.pcx, then increases the number.|
|Shift-P||Switches to Quake's or Quake 2's palette. You should have this palette when using textured preview.|
|Ctrl-Shift-P||Switches to Quest's palette. If not using textured preview, you should use this palette. Quest should automatically switch back and forth, but if it messes up, use these keys to set the palette manually.|
|Ctrl-Z||Undo the last operation. This will attempt to restore things to the way they were before the last change.|
|Ctrl-Alt-M||Dumps all messages to 'message.out'.|
|Ctrl-Alt-C||Reinits the camera, i.e. finds an info_player_start and places the camera there.|
|F2||This will autozoom to the currently selected brushes.|
|L||Toggle the display of the lines loaded from a pts or lin file. These lines are supposed to help you track leaks. When qbsp or qbsp3 finds a leak, it will output a pts or lin file. Use 'File->Load PTS' to load this file. A lot of lines will appear, leading from the outside of the map to the inside. The leak is somewhere along this line.|
|E||Toggles texture locking.|
|Arrows||Move around (strafe).|
|A,Z||Move forwards and backwards in 3d mode.|
|S,X||Zoom in and out in 2d mode.|
|D,C||Roll left and right in non-axis-aligned 3d mode.|
|V||Toggle axis-aligned mode. When on (default), all rotating of the camera is in 90-degree steps. When off, you can rotate the camera in 5-degree steps, and also roll it, which gives you a 'freelook' mode.|
Another way to move around is to hold down the right mouse button and drag the mouse. This will allow you to strafe. If you want to move forwards and backwards, hold down both mouse buttons and drag the mouse up and down.
|B||Toggle fullbright. When fullbright is on (which is what I have all the time) everything is visible. When fullbright is off, colors will fade with distance, and objects beyond the depth clip distance won't be drawn at all.|
|G||Cycle through the grid types. There are three of them: no grid, normal grid, and a special grid. The special grid is hard to explain. Try it. Note that this setting doesn't affect the snapping of objects to the grid, i.e. even if you turn the grid off, moves will still be in steps of the current grid size.|
|-,+||Increase or decrease the grid size, in multiples of 2, i.e. if the current grid size is 16, increasing it would change it to 32, and decreasing would change it to 8.|
|],[||Increase or decrease the depth clip distance, described above.|
|F1||If you press this, the current viewport will be enlarged to cover the entire viewport area. Pressing it again changes everything back to normal.|
Some of the modes will have an axis in the lower left corner. The red line is the x-axis, the green is the y-axis, and the cyan is the z-axis.
4.3.1 - 2d mode
Toggle 2d mode with the 'F'.
2d (or flat) mode is the only mode where you can have a grid.
4.3.2 - 3d wireframe mode
This is the default mode. To get to it, just toggle the currently active mode off. E.g., if you're in 2d mode, press F again to get to 3d wireframe mode.
4.3.3 - Polygon mode
Toggle polygon mode with 'P'.
This mode will give you a Z-buffered, filled polygon view of your map. It isn't too useful. I'd recommend using BSP mode instead, as it's faster and better.
4.3.4 - BSP, textured, and grey shaded mode
Toggle BSP mode with F3.
Toggle textured mode with 'T'. Toggle grey shaded mode with Alt-H
These modes use a BSP tree to display the map, which means they're fast and show you exactly how brushes intersect. It also means that you must build the BSP tree before using one of these modes. When you switch to one of these modes, the BSP tree will automatically be generated. If you make any changes to your map, you have to rebuild the BSP tree before you'll see these changes. Rebuild the BSP tree with Shift-F3.
Textured mode will present you with a textured preview of your map. It's real slow, but it gives you an idea of how your map will look in Quake or Quake 2.
The grey shaded mode will shade the faces depending on their angle. It is faster than the two other modes, and is useful when several faces have the same texture but are angled differently.
After having selected a brush or face, you'll notice that its vertices are marked by cyan dots. To select one of them, click on it, and it will turn red. If you want to select several vertices, click on each of them, or hold down shift while dragging the mouse to create a selection box. All vertices within this box will be selected. To deselect all vertices, click somewhere where there aren't any vertices. A fast way to select all vertices on the selected brushes/faces, is to press Ctrl-A.
After you have selected some vertices, you can move them around. Simply click on one of them and drag it around. All selected vertices will move with it. When you're done, release the left mouse button.
You can also move the selected vertices with the keyboard, using shift+arrows. Use shift-page up and shift-page down to move the vertices forwards or backwards.
If you move a vertex on top of another vertex, Quest will merge them, deleting edges and faces as necessary. Note that the vertices must be exactly on top of each other, so you probably must snap them to at least a 1-unit grid. Merging vertices is a neat way to create degenerate brushes. Don't do this. If you do it by accident, press Ctrl-Z to undo it.
If you, when moving vertices, create an invalid brush, Quest will give you an error message telling you so. The two things you need to have in mind are:
If you want to mirror a brush, you should use the mirror command. If you move the vertices past each other, you'll make the brush concave (non-convex).
The brush mode is used to create, move, and edit brushes. In this mode, only brushes will be display. The edges will have different colors depending on the color of the brushes' groups. All brushes will also have a red focal point.
In brush mode, the left part of the status bar contains the name of the current default texture. If you hold the mouse cursor over a brush's focal point, the left part will contain the texture name and center point of this brush.
To select a brush, hold down ctrl and click on the focal point. Its edges will then turn yellow, and its vertices will appear as cyan dots. They can then be edited with the vertex editing commands, described above. To select several brushes, you can ctrl-click on all their focal points. You can also hold down ctrl and drag a selection box. All brushes whose focal points are inside the box will be selected. To deselect all brushes, ctrl click somewhere where there isn't any focal point.
There are also several keys used to manipulate brushes. Many can also be found in the menu, under Brush.
|Ctrl-T||Brings up the texture picker. If any brushes are selected, the selected texture will be applied to them. If no brushes are selected, the texture will be made the current one. If you use the create cube command, it will use the dimensions of this texture to get its size.|
|Ctrl-C||This copies the selected brushes to the clipboard.|
|Ctrl-V||This pastes the brushes in the clipboard. Copying and pasting is a good way to duplicate brushes.|
|Delete||Delete all selected brushes. If you delete all brushes from a model, the only way to access and delete the model will be with the model list dialog.|
|Ctrl-R||Rotate the selected brushes around their center. Move the mouse around to rotate them. Press the right mouse button to cancel. Press the left mouse button when you're done.|
|Ctrl-M||Mirror the selected brushes. Move the mouse around until it's mirrored the way you want it. When you're done, press the left mouse button. To cancel, press the right mouse button. Note that you can only mirror the brushes in any axis at the time.|
|Ctrl-G||Scale the selected brushes. Just like the other commands, move the mouse to scale it. Left mouse button when you're done, or right mouse button to cancel.|
|Shift-G||Scale the selected vertices. Like the above command, except only the selected vertices will be scaled. Neat, although I've never used it.|
|Ctrl-N||If, through rotating, scaling, or whatever, your brush gets unaligned, you can snap it to grid with this command. If the brush becomes invalid when it's snapped, you'll get a warning about this.|
|Alt-F||Edit the surface flags of all faces of the currently selected brushes. Brings up the Quake 2 contents/surface flags dialog.|
Quest also has some useful CSG operations.
CSG subtraction. Select the brushes you wish to subtract from, press I,
select the brushes to subtract with, and press the right mouse button.
CSG subtraction means that the volume of the brushes you subtract with will be removed from the brushes you subtract from. Thus, at least some part of them must overlap. Usually, the 'from' brushes will be split into several new brushes. After the subtraction, the 'with' brushes will remain selected, so you can easily delete them, if wanted.
|O||CSG intersection. Select two brushes and press O. Quest will create a new brush, representing the space they have in common. The brushes must at least partially overlap.|
|H||CSG Make hollow. This will make the selected brushes hollow. The 'walls' will have a thickness of the grid size. The resulting brushes will have a perfect outer and inner 'skin', although the brushes will overlap. You may or may not want to change this, depending on what you plan to do with them.|
|R||CSG Make room. This is like the CSG Make hollow, except it will only make a perfect inner 'skin', and the resulting brushes won't overlap. This is a good way to create new rooms of any shape.|
The face mode is used to edit individual faces. The faces' edges will be drawn in the color of the faces' brushes' groups. All faces will also have a green focal point.
In face mode, the left part of the status bar contains the name of the current default texture. If you hold the mouse cursor over a face's focal point, the left part will contain the texture name and center point of this face.
To select a face, ctrl click on its focal point. The selected face's edges will turn yellow, as will its focal point. Its vertices will be marked by cyan dots, and they can now be edited as described above. To select several faces, ctrl-click on each of them. You can also hold ctrl down and drag a selection box. All faces whose focal points are within this box will be selected.
Face editing keys:
|Ctrl-T||This brings up the texture picker, allowing you to change individual faces' textures.|
|Alt-F||Brings up the Quake 2 contents/surface flags dialog, allowing you to edit individual faces' properties.|
|Ctrl-E||Brings up the face properties dialog, allowing you to align the texture on the face.|
|Ctrl-Numeric +||If one face is selected, this selects the next face on the selected face's brush.|
|Ctrl-Numeric -||If one face is selected, this selects the previous face on the selected face's brush.|
In Quest, you can also split faces and edges to create brushes any shape you want. To use these functions, you must have one face selected. To select an edge, select the edge's two vertices.
|Ctrl-L||Splits the selected edge (i.e. the edge that connects the two selected vertices).|
|Ctrl-F||To use this, select two vertices not on the same edge, and press Ctrl-F. Quest will insert a new edge between these vertices and split the face there.|
|Alt-S||Select an edge (see above), press Alt-S, select another edge. The selected edges will be split, and the face will be split along the new edge connecting the two new vertices.|
Entity mode is used to create, move, and edit entities and models. All brushes will be drawn, but without focal points, and all entities will be drawn as wireframe boxes. If draw_models is set to 1 in quest.cfg, Quest will also display a wireframe model of the entity.
The color indicates the type of entity. The entities also have a focal point, usually in the center of it. They will also have a line through the center of them, indicating the angle they have. Models will have a box around all their brushes, and the focal point at the center. They can be selected, moved, copied, and pasted just like normal entities.
In this mode, hold the mouse cursor over an entity, and it's classname and origin (if any) will appear in the status bar.
To select an entity, click on its focal point. To select several entities, click on all their focal points, or hold shift and drag a selection box. All entities whose focal points are inside the box will be selected. Selected entities will turn yellow, box and focal point.
To move entities, just drag them around. You can also move models. This won't actually move the model, instead, the model's brushes will be moved.
Entity mode keys:
|Alt-E||This will bring up the entity picker, allowing you to create a new positional entity.|
|Ctrl-E||This brings up the entity edit dialog, allowing you to edit the selected entities key/value pairs.|
|Ctrl-C||Copies the selected entities to the clipboard.|
|Ctrl-V||Pastes the clipboard entities. You can also copy and paste models, in which case their brushes will also be copied and pasted.|
|Ctrl-R||This will rotate the selected entities, i.e. change their angle key. Rotating a model will only change its angle key, it won't affect its brushes.|
|Ctrl-M||This brings up the model list dialog.|
|Delete||This deletes the selected entities. Deleting a model causes its brushes to be assigned to the worldspawn entity.|
The model mode is used to edit models, creating them, adding brushes to them, and creating links between entities and models.
In model mode, the status bar is empty.
In model mode, all entities and brushes will be drawn, with focal points. Shift click and drag to select entities. Ctrl click and drag to select brushes. Selected brushes and entities will turn yellow.
There is no way to move stuff in model mode, it wasn't intended for this.
To create a model, select the brushes you wish to attach to it and go to 'Model->Create' in the menu. This will bring up the entity picker. To add more brushes to a model later, select the brushes and the entity you wish to add them to, and use 'Model->Add' to in the menu.
You can also manipulate models with these keys:
|Ctrl-E||Brings up the entity edit dialog, allowing you to edit the selected entities and models.|
|Ctrl-M||Brings up the model list dialog.|
|Delete||Deletes all selected entities and models. No brushes are affected.|
|Ctrl-L||Use this to automatically create 'links' between entities. First, select the from entities, press Ctrl-L, then select the to entities and press the right mouse button. Quest will set the target key of the from entities and the targetname key of the to entities. If the link can't be created, because of target/targetname mismatches, Quest will tell you so. The automatically generated targets/targetnames follow a really simple format, t?, where ? is a number. Quest will pick the lowest number that isn't already used in the map. Thus, it will start at t0, then t1, t2, t3 etc.|
Before you can play your map, you must build it. This is a three-part process. First, qbsp/qbsp3 parses your map file and generates a bsp file. It also clips away the outside of the map, checks for leaks, and some other stuff. After this, you should get a file with the same name as your map file, but with a '.bsp' extension, and another file with a .prt extension. If it discovers a leak, it will output a pts or lin file. You can then load this file in Quest to find the leak.
If qbsp built your map all right, you should now run vis/qvis3. This program will generate a PVS (potential visibility set), i.e. it will figure out which parts of the map can see other parts of the map. This way, Quake doesn't have to draw those other parts. This speeds up Quake a lot. A map without a PVS can be used in Quake, but if the map is large, it will probably unplayablely slow. Thus, before you release a map, you should always make sure you ran vis/qvis3 on it. Note that this won't work if your map has a leak, so you must remove them first. This program uses the prt file generated by qbsp/qbsp3.
The last step is to compute the lightning, using light/qrad3. If you don't do this, your entire map will be fullbright. This program will load all light entities and faces (for Quake 2), and compute all light and shadows and stuff.
All these programs require HUGE amounts of memory, several hundred megabytes for large maps, so make sure you have lots of memory and swap space. All programs also take large amounts of time, especially the visibility step. For large maps, you might have to leave this on over the night (or maybe even the weekend).
You should place all your Quake maps in the quake\id1\maps directory. At the very least, you must place the resulting bsp file there, or Quake won't find it.
Once you've built your map, start Quake, press tilde to bring down the console, and type map name, where name is the name of your map, without the bsp extension.
The utilities you need to run for Quake 2 maps are qbsp3, qvis3, and qrad3.
Qrad3 calculates the lightning using a radiosity model, which makes it look much better then Quake's light model. To do this, it must have the PVS generated by qvis3, so you must run that first.
To play your map, start Quake 2, bring down the console with tilde, and type map name, where name is the name of your map, without extension.
In this tutorial, we will create a simple map, consisting of a simple, square room. I assume you've already managed to configure Quest correctly.
First, start Quest. You'll see all the standard Quest screen areas, with three pitch-black viewports. The first thing we want to do is to change the viewports. First, click in the right one. Press 'F' to change it to 2d mode, and then 'B' to change it to fullbright mode. Click in the upper left one and do the same. Those two viewports will now contain a grid. Click in the last viewport, but in this one, just press 'B'.
This is the way I have my viewports configured when I use Quest. However, as you see from the axis indicator in the lower left corner of the viewports, all of them are looking in the same direction, down the x-axis. To change this, click in the upper left viewport and press Alt-Down. The viewport will now rotate, and as you can see from the axis indicator, it now gives you a top-down view of your map.
Another thing you might want to do is to change the grid size to 16. I will assume the grid size is 16 for the rest of this tutorial.
To create a plain, square room, we need six brushes, one for the floor, one for the ceiling, and one for each of the walls. There are several ways to have Quest create these brushes automatically, but lets do it manually first.
If you're editing Quake, I assume you have the necessary wad files with textures, and that Quest is configured to use one. Otherwise, use 'Textures->Select textures' and pick a wad file.
If you're editing Quake 2, you have to add some textures to the texture cache first. To do this, go to 'Textures->Select textures'. To add some textures fast, just click on the e1u1/ directory, and then press Add all. This will add all textures in that directory. When Quest's done, press Done to get back to your map.
We'll begin with the floor. Press the Cube button on the toolbar. A cubic (almost) brush will now appear in all your viewports. If you can't see it in all your viewports, use the arrows to move your viewport so you see the brush. You might also want to zoom in and out, or move backwards and forwards, until you're satisfied.
As you see, this brush isn't suitable for a floor. We need to change its shape. To do this, hold down control and click on its focal point. This will select the brush. First, we want the floor to be flat, so in the right viewport, hold shift down and drag a selection box to select the top vertices of the brush. Once they're selected and have turned red, drag them down so the brush is 16 units (one small grid box) high.
Next, go to the upper left viewport. Use the same technique you used to change its height to changes its size, i.e. select the vertices four at the time and drag them around. You should make the brush a square of about 256x256 units (four big (light blue) grid boxes).
You'll also want to choose a texture for the brush. With the brush still selected, press Ctrl-T. In this dialog, press the Fullscreen button. Scroll around until you find a texture you'd like on the floor. Click on it, and you'll be returned to the texture picker. Press the OK button here.
Now we need to create the ceiling. The ceiling is going to be the same shape as the floor, so, with the floor brush selected, press Ctrl-C followed by Ctrl-V. This will make a new copy of the brush, and it will be selected. Now, just press Ctrl-A to select all vertices on the new brush, and drag it to its position above the floor. In the upper left viewport, the brushes should overlap exactly. You will also want to select a texture for the ceiling. Do just like you did for the floor.
Our room is still incomplete, as it lacks walls. So, control click on some empty spot to deselect all brushes. Next, press the cube button to create a new brush. You should be able to move it around and place it yourself. You'll need to align it with the floor and ceiling in all viewports. I recommend making the wall 16 units thick. When you've positioned and reshaped it correctly, pick a texture for it. To create the next wall, copy and paste this one (with Ctrl-C and Ctrl-V), and move it to the other side of the room.
To create the last two walls, select your two current walls, and copy and paste them. Make sure you are in the upper left viewport. Now press Ctrl-R to rotate them. Rotate them 90 degrees in any direction. Press the left mouse button when you're one. This might have caused the brushes to become unaligned with the grid, so press Ctrl-N to realign them. You might also have to press Ctrl-A and move them around so they're correctly positioned.
Now your room should be complete. However, before we'll try you map out, we need to add some entities. Press Tab twice to switch to entity mode. Press Alt-E to bring up the entity picker. Click on 'info_', and then 'info_player_start', and press the OK button. A red box will now appear on the map. This is where you'll start. Click on its focal point and drag it around to where you want it. If you want to place it right on the floor, you'll need to lower the grid size to 8.
The map is now ready to be played, but before we do this, lets place a light on the map. Press Alt-E again, and this time, click on 'light', and then the OK button. A green box will appear. This marks the origin of the light. The entity itself won't be display in Quake, but the lighting will show up on the nearby brushes. Place this light somewhere in the room.
Now, we'll save your map. Go to 'File->Save as'. In the resulting dialog, go to Quake\id1\maps for Quake, or Quake2\baseq2\maps for Quake 2, and save the map there. Give it any name you want, I'll call it 'tut1.map'. The next time you want to save it, just press Ctrl-S, and Quest will save it to that file.
Now exit Quest, go to this directory, and for Quake, type:
Next, follow the instructions in Part 5 to play your map in Quake or Quake 2.
Other people who have helped me develop Quest (if you think I've missed you, e-mail me). Incomplete list in no particular order:
When Quest parses these files, it searches for QUAKED comments. An example of a fixed size classname is:
/*QUAKED item_sigil (0.0 0.5 0.8) (-16 -16 -24) (16 16 32) E1 E2 E3 E4 :model=:progs/end1.mdl End of level sigil, pick up to end episode and return to jrstart. */
/*QUAKED identifies the comment.
item_sigil is the classname.
(0.0 0.5 0.8) is the color entities with this classname will be drawn in. The three numbers are the red, green, and blue strenght, in that order, from 0 to 1. Thus, white would be (1 1 1), red (1 0 0), green (0 1 0).
(-16 -16 -24) (16 16 32) is the size of the entity.
All this should be on the first row, followed by a list of all spawnflags (E1 E2 E3 E4). There can be up to eight spawnflags.
If there is a model to use for this classname, the following line should start with :model= follow by the filename of the model. If the first letter of the name is :, Quest will search inside the pak files specified by mdlpaks for the model file. The extension can be '.mdl' or '.md2', and is what Quest uses to decide how to load it. They may be freely mixed.
The rest of the comment is the text that will appear in the help area of the Quest entity editor.
If the entity is supposed to have brushes attached to it, it shouldn't have a :model= row, and the size numbers should be replaced by a question mark (?). Example:
/*QUAKED func_train (0.0 0.5 0.8) ? Trains are moving platforms that players can ride. The targets origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. If the train is the target of a button or trigger, it will not begin moving until activated. speed default 100 dmg default 2 sounds 1) ratchet metal */
If you want to add your own classnames, you should create a new file in the qc or qc2 directories and enter this information there. If you don't want the old Quake/Quake 2 classnames, put this file in a new directory, and point class_dir at it.
Fixed some errors.
Wrote Appendix C.
Fixed some errors.
I decided to write this when I started getting e-mails asking me to add features that were already in Quest, but that weren't documented, so nobody (except me) knew how use them.