Here on the Wiki, we have a Custom level tutorial aimed towards the hammer editor. However, QuArK is a very popular level designer/editor (does models too, but someone else can write that page,) and was woefully negelcted in the tutorial. This page will touch on that tutorial.

What is RequiredEdit

QuArK latest recommended

Quake shareware 1.06

GlQuake in the quake directory

The PAK.O file for quake.

The PAK 1 fiule for quake (more textures.)





The QuArK editor screenshot.

Getting StartedEdit

To get QuArK on its feet the first time, you need to go to the configurations dialogue box under options in the main window. Search the opened window until you find Quake 1.

In the game executable options, highlight GLquake.exe

Press the ... button next to the location option, then browse and find wherever you put quake 1.06

select your default textures

Scroll down to the build programs list and for each exe, input the directory for that executable

(Qbsp is treeqbsp.exe, same with vis and light.exe.)

Hit apply.

QuArK is now set up to compile maps.

Your First TryEdit

To begin making the map of your dreams, Make sure in the main menu under the games tab in the upper right corner of the menu, make sure quake 1 is selected from that list. It is in the quake tab.

Once Quake 1 is selected, go two buttons to the left of the games tab button, and you may either see "New quake 1 model," or "New quake 1 map." Select the map one.

QuArK is kind enough to give you a default room with the basics, a spawn point, a light and four walls, a floor and a sky. You can select different view modes in the layouts tab from wireframe, solid and textured. 3D opens a new window in 3d mode, wireframe works always, and solid and textured show walls with textures and models (if any).

To mess with a wall, simply click on it. Clicking on a wall will cause it to open a different tab in the lower left corner where before there was a tree view of your map. This new window is a shape specific information window and can be used to select other textures. The tab to the right selects face specific options and texture sizes, and the tab to the left selects the specifics tab (Arguably the most important tab.)

Once a wall (or any other poly) is selected, you can resize it at will, change textures, angles and the like. Go ahead and experiment with it. You can also move it's position by using the arrow keys on the keyboard when the mouse is in a relevant window.

To make a door into another room, go to the poly's button above the compass and scroll down to shape builders, then select digger from that list. Digger comes in a default texture and applies that texture to whatever it dug Resize the digger shape at will by selecting the digger block, and place it where you want the door to appear in the wall. Then, once you have your desired hole size, go up to the tab buttons above the compass, where they say "Used Textures" and "Basic Polyhedrons" and "Quake 1 entities." you want the entities tab. Go to that tab, then select the doors and trains tab from the pop up list. Scroll down to func_wall and click it. A cube will appear in your map with the default texture for walls, and it will also appear in the tree view for your map. Select it in the tree view by clicking on the text portion twice. Rename the func_wall to func_door_nzp and click anywhere else. then select the door, and go to the specifics tab.

The specifics tab for the door will be empty. Click on the plus icon to add an arguement (necessary)

In this new specific, type in "angles" without the quotes. in the corrosponding arguement, type in "0 0 0" without the quotes. Then add a new specific, call it "cost" and in the arguement, type whatever cost you want.

Do this again for speed (default 100), lip (lip must always equal 0")Target (first door is always s2, third is always s3 and so on,) and dmg (if someone gets in the way, set it to 200 so it knocks em out, or 0 if you don't want the door to damage anyone.)

Congrats, you have your first door and room, already set to activate the next hoarde, but you're still missing guns.

To make a gun buy point, copy and paste your nzp door. Select it in the tree window in the lower left corner, and double click the text part SLOWLY to rename it to buy_weapon. Once this is done, go to the specifics tab of the lower left window, and DELETE ALL arguments by repeatedly hitting the minus (-) button. Then put in the cost by +, writ cost, then the cost you desire, then the same with cost1, (WHICH GIVES AMMO) Ammo, message, message 1, and weapon. For weapon, you will need the weapon ID number from either the wiki, the FGD file when opened in Notepad, or the forum, depending on which version you are making the map for.

Multiple roomsEdit

In your second room, you have two options for floors and walls. You can either copy and baste the walls of the first room and resize them as you see fit, or you can go up to the polyhedrons button and select X wall, Y wall and platform. Resize these to your liking and move them to wherever you see fit.

Triggered doorsEdit

These are doors that won't open until a button is pressed in the map. To make a triggered door, you need both a func_door (an original quake 1 entity) and a func_button (also quake 1,)

In the specifics tab for the door, go down to targetname and enter whatever you want in the arguement field. In the specifcs tab of the button, target must equal this door'Ss targetname.

If you want a door that closes eventually, leave everything else alone. I f you want a toggle door, check the toggle box in the door's specific tab. If you want a door that stays open, go to the wait specific in the specific tab, and enter -1 in the arguement for the wait specific.

To change the angle which the door opens, grab the pointer that comes from the door when the door is selected and drag it to the direction you want it to open to. Func_door_nzp will always dissapear when opened, and normal doors always remain solid objects.

To change the size and shape of the door, click on the + next to the door in the tree view, then select the poly. The door will now have the blue adjustment squares. This can be done to all doors and buttons.

Zombies, barricades, box and perks.Edit

Nazi Zombies are not part of the original Quake 1, so you will not find the zombies option. instead, what you must do is a little hunting. Open an existing nz:p map and scroll through the tree view until you locate spawn_zombie. Right click and select copy. Return to your desired map. Right click in the tree view window when nothing is selected and select paste. DO this for barricades, perks and the box.

Names of NZ:P entities you will need to copy and paste:











Once you have all these transplanted to your map, to get to them easier next time, click and drag them from the tree view to the empty buttons section above the compass. They will then become an instant option for you to click on at will.

Note: all entities will retain their settings from the map they were copied from. This means perk angle directions, zombie targetnames and targets, barricade target names etc. etc. You can tweak all these at your own will.


There are several traps you can use. You can copy and paste the electric traps and switches from wahnsinn, or you can use natural hazards, like pressure plates and spikes. To do this kind of trap, do the following:

Create both a  func_door and a func_button

Name the func_door in the targetname as trap1.

name the target in func_button as trap1.

set dmg in the door to whatever you want.

Set the angle in the door to whatever you want.

Place the door in a spot where it will crush the player or zombies at will (the cieling for cieling traps, the walls for spikes, the floor for floor traps)

Set a recharge period in the wait arguement for the button. any number equals a second. (1 = 1 second, 60 = a minute  etc.)

Water and Lava hazardsEdit

Water is a native thing in quake and can be used in NZ:P.

To create a pond, first make a spot for the pond in the floor.

Create a new poly that takes up the size of the pond you want.

Go to the toolboxes tab at the top.

Select texture browser. Go to the environment sub menu in the browser under quake 1 textures.

Select your water. (Blue is normal. Brown is murky, green is toxic (10 damage to the player once a second.) and lava is very lethal, (15 damage every half second, 20 if under it.)

Note: Deep ponds and lava pits are things the zombies avoid, they cannot swim.

Note: If set as a door, the water/lava becomes solid.

Sky Poly'sEdit

The sky can be anywhere, above, below or on the sides in the form of windows, viewports and skylights. There are two basic textures in the enn=vironment option for sky, but the third option as the teleporter texture for quake can be used as a starry sky that moves. Rockets and grenades dissapear in sky poly's but are otherwise solid.

Other stuffEdit

Func_illusionary are walls and floors that players (and zombies) can go through.

Func_train entities are movable trains that only work in the 1.2 alpha version. They use path_corner's to navigate.

Func_teleporters only work in the 1.2 alpha, and teleport both players and zombies. Need a info_teleport_destination which can be found under the player spans tab in quake 1 entities. Func_teleporter target must equal info_teleport_destination's targetname, else it will not work. Can have several at once. If Players teleport into a spot when another player is there, players can "telefrag" eachother. (the one who was in the way will get insta-killed.)

Trigger_once- can be used to trigeer doors or zombie spawns, good for one use, only works in 1.2 alpha.

Trigger multiple- can be used as many times as you want, active only when inside the trigger, 1.2 alpha.

Trigger_hurt- exactly what it says. Only players can start it, but zombies inside the trigger when it is started will also be affected. If set with a target name, can be triggered by a button or trigger_once or multiple.

Trigger_push- creates a wind tunnel in whatever direction you choose, only works in 1.2 alpha.

Zombies that attack-Edit

To create a functional zombie, you need the following-

Spawn_zombie- set target to something simple like p1

path_corner - found in the quake 1 entities misc section. Set targetname to whatever the target was of spawn_zombie

item_barricade- set targetname to the target of path_corner

Note: Each spawn_zombie needs it's own special path_corner and item_barricade. If more than one spawn uses the same barricade, the zombies will stop spawning around round 2.


These can be made by going up to the quake 1 entities, then scrolling down to monsters, then selecting monster_dog. Don't look at the others, nothing will happen (except monster_knight, which is a one time spawn for zombies.)

Hellhounds are proximity based spawns, the spawn closest to the player will spawn a dog, so even noclipers are not safe.

Compiling your mapEdit

Assuming you set up you configuration correctly, these seven steps are what you need to do:

Go to the Quake 1 tab at the top of the window

Select prepare used textures.

Hit okay when the dialogue box pops up.

Go back and hit QBSP compile map

Again with Vis- set visability

Again with light

The map will be in your Quake 1 directory in the tempQuArK folder. If it isn't there, then it's in the maps folder inside the tempQuArK folder.

If you did not name your map, it will be called newmap.bsp

If you do not prepare used textures, the map will still build, but have the grey and white default texture.


Yes, I know I left the weapon buypoints out, I am still working on which trigger will be modified from it's original form to buyweapon entity.

I also left out lighting your map, and here is why:

The QuArK lighting system is always fullbright, you don't really get a good idea of what your map really looks like. To get lights into your map, open it in NZP for the pc, and load the map. Then type in R_EDITLIGHTS 1

After that, you may want to type this in exactly

bind / "r_editlights_spawn"

bind . "fog 0"

bind , "r_editlights_save

bind p "r_editlights_remove"

if you do not know what effect does what, type in r_editlights_edit for a full listing of hwo to use r_editlights.