BSP HQ Logo by QuakeGod
BSP Headquarters Logo by QuakeGod

Back to Previous Lesson                    Go to next lesson

Lesson 7 - More Lifts


In the last lesson, we learned how to make a basic lift. This was the default design and is the one Quake handles with the 'func_plat' entity. However, there may be times when you want a lift to start in the raised position and lower the player to a lower level. The 'func_plat' entity won't work very well for this, so this lesson will show you how to accomplish it.

You'll need the file we've been working with in the earlier lessons. If you worked through all the lessons so far, you should have a file called 'Lesson6.map'. If you don't have it, or if you've played around with yours so it doesn't match mine, you can download it here.

Make a copy of this file and call it Lesson7.map. Now load Lesson7.map into BSP and let's make a new lift.


Let's draw a new lift, in the raised position on the opposite side of the room from our first lift. Draw a 64x64 brush in the Top View, centered on (-480, -288). Make it 8 units high and set the bottom of the brush at 128 on the Z axis. Give this the 'PLAT_TOP2' texture. Now let's make a stem like we did on the other lift, but let's make it wider. Make a 48x48 brush in the Top View, also centered on (-480, -288). Give this one the 'PLAT_STEM' texture. Set the bottom of this brush on the floor and stretch the top up to 128 on the Z axis, just like we did in the last lesson.

Select both brushes and this time, instead of making the brushes a 'func_plat' entity, we need to make them a 'func_door'. That way they won't start in the lowered position like our other lift does. Remember to select both brushes at the same time so they will function together as one unit. After you click on the 'Make Entity' button, select the 'Dn' button in the angle selection area. This will make our lift move down when triggered. You might also want to add a 'sounds' '1' key/value pair to your lift to give it a sound effect when it moves.

One interesting thing to note here. If you run your map in Quake now, when you approach the new lift, it lowers, since Quake thinks it's a door and is 'opening' it. But if you stand on the lift, it never raises. Again, this is because Quake thinks it is a door. Doors don't close when you're standing in front of them. For this reason, we need to make a trigger to make our lift work the way we want. Let's add a button on the wall to make the lift lower to the floor.


Go to the Front View and draw a 32x32 brush centered on (-416, 32). Switch to the Side View and make this brush 8 units wide and drag it so that it sits against the wall next to our new lift. Switch over to the Texture Window and select '+1BASEBTN' for a texture. (You may not see this texture depending on whether or not you have animation enabled. Just select 'BASEBTN' if you see that instead.) Apply that texture to the entire brush. Now, since this button doesn't line up exactly on a 64x64 grid, we'll need to offset the X and Y textures each 16 units for the side of the button the player will see. With the same texture selected, set the X and Y offsets to 16 and apply the texture only to the side of the brush which faces out into the room. Remember how to do that? Click here if you forgot. You can check your work in the 3D textured window to see if it lines up properly. We could have offset the textures for the entire brush, but then the sides of the button would look funny. Try it if you want to see what I mean.

With your button still selected, switch to the Entity Window and make this brush into a 'func_button' entity. We also need to set the angle of our button, so Quake knows which way to move it when it is triggered. Select 270 for the angle. That will make it recess into the wall. Now apply a key/value pair of 'target' 't2' to this entity. Remember we used the 't1' trigger tag for our teleporter, so we don't want to duplicate that one.

That finishes the button; now all we need to do is connect it to our lift. Select both brushes of the lift together and assign a key/value pair of 'targetname' 't2' to them. This will connect them with our button. Now the lift shouldn't operate unless the button is pressed. That gives us complete control over when it lowers.

Go ahead and compile your map and try it out. Notice how the button light changes colors when you press it and then changes back to red after a few seconds. Quake takes care of this automatically for you. Here's our new lift, complete with button:

Quake Screenshot

There are some other properties you can control on the button if you want. You can control quite a bit about the button, including how much of a lip it leaves sticking out from the wall, how long it stays recessed and so forth. Remember, you can check out these properties by clicking the '?' in the Entity Window. One interesting flag you can set is the 'health' flag. If you assign a key/value pair of 'health' '1' to your button, then the button has to be shot in order to be triggered. Go ahead and do that now. Then when you run your level in Quake, you can't activate the button by pressing it anymore. Cool, eh?

Of course, when the player sees a button like this, he's going to try to press it. When nothing happens, he is liable to get frustrated. We can fix that. Let's have a message pop up telling him to shoot the button. It's pretty easy to do. First draw a brush from (-440, -296) to (-392, -312). Make it 64 units tall and make sure the bottom of the brush sits against the floor. Now switch over to the Entity Window and make this brush into a 'trigger_multiple' entity. Go ahead and add a key/value pair of 'message' 'You can shoot this button' and another key/value pair which reads 'sounds' '1'. Now, save your map and run it again. This time when you approach the button, you should see a message like this:

Quake Screenshot

The 'trigger_multiple' insures that the message will appear every time the player approaches. (In case he forgets and tries to press the button later).


Well, that's about it for lesson 7. We're getting a pretty good handle on using BSP now, don't you think? In the next lesson, I'll show you how to make a moving brush that the player can ride around on. Till then, happy Fragging!!

Back to Previous Lesson                    Go to next lesson

BSP is the sole creation of Yahn Bernier. I am only a dedicated user, reporting news and making tutorials so Yahn can spend more time enhancing BSP. QUAKE is a registered trademark of Id Software, Inc. QUAKE(r), the stylized reproduction of the QUAKE(r) trademark, including, without limitation, the Q in QUAKE(r), and the images depicted in QUAKE(r) are the copyrighted property of Id Software, Inc. So there :-P

This web page was created and is being maintained by me (DeadMeat). The main logo for this site was made by QuakeGod. Most everything else was made by me.

All content appearing on this site after August 30, 1997 was written by DeadMeat. Also, DeadMeat's BSP Tutorials were created entirely by DeadMeat. All unauthorized use is prohibited. (c) 1997