_-= Wong Chung Bang's =-__________________________________________
/                                                                  \
| UUUU  UUUU                                     EEEEEEEEEE        |
| UUUU  UUUU                                     EEEEEEEEEE        |
| UUUU  UUUU                                     EEEE              |
| UUUU  UUUU NNNNNN RRRRR  EEEEEE  AAAA  LL      EEEEEEE    DDDDD  |
| UUUU  UUUU NN  NN RR  RR EEEE   AA  AA LL      EEEE       DD  DD |
|  UUUUUUUU  NN  NN RRRR   EE     AAAAAA LL      EEEEEEEEEE DD  DD |
|    UUUU    NN  NN RR  RR EEEEEE AA  AA LLLLLL  EEEEEEEEEE DDDDD  |
|                                                                  |
| E-mail: wongchungbang@hotmail.com              -= F A Q v1.7 =-  |
|                                                                  |
\___ Copyright (C) David Newton ('Wong Chung Bang')  12/09/2002 ___/

Please ask permission before hosting this FAQ.

Sites with permission to host:

www.gamefaqs.com
DLH.net
www.neoseeker.com

=====================================================================
Versions
=====================================================================

V1.6 - Added more sections to Further Techniques.
V1.1 - Started on 'Further Techniques' - only one section done.
V1.0 - Original version.

=====================================================================
Contents
=====================================================================

-= Section 1 : A First Level =-

I. Introduction
II. Getting the Editor Started
III. The Editor Screen
IV. Moving Around
V. Basic Building
VI. Texturing
VII. Lighting
VIII. Rebuilding
IX. Adding more Detail (using Texture Properties)
X. Saving the Level
XI. Duplicating
XII. Building a Corridor (Moving Vertices)
XIII. Texture Realignment
XIV. Adding Start Points
XV. Testing the Level
XVI. Adding and the 2D Shape Editor
XVII. Texture Rotation
XVIII. Texture Replacement
XIX. Pickups
XX. Pathnodes
XXI. More Building
XXII. Deintersecting
XXIII. Adding Pillars
XXIV. Skyboxes
XXV. More Lighting
XXVI. Glass
XXVII. Conclusion

-= Section 2 - Further Techniques =-

I. Introduction
II. Level Properties
III. Movers and Triggers (Doors and Lifts)
IV. Zones 
V. Light Types
VI. Teleporters

=====================================================================
Section 1 - A First Level
=====================================================================

---------------------------------------------------------------------
I. Introduction
---------------------------------------------------------------------

Welcome. This FAQ is a step by step guide to how to build UT levels. 
No knowledge is required on your part to start off. After the initial 
stages where you learn basic things like geometry and lighting, you 
don't have to use all the sections - feel free to skip parts if they 
seem too complex, or if you don't want to use them in your level.

If you feel that I've missed something, or I haven't explained 
enough, e-mail me (the address is given at the top of the FAQ). Also, 
if you want to contribute anything you've written, feel free - your 
name will appear in a list of contributors.

---------------------------------------------------------------------
II. Getting the Editor Started
---------------------------------------------------------------------

First, check your version of UT (you can see it in the corner on the 
main menu). I originally had version 400 of UT, but upgraded to v436 
by the patch available from www.unrealtournament.com (if you don't 
already have this, I suggest you get it). The installation of the 
editor seems to be strange with this setup - it is supposed to be on 
the 'Extras' CD, but instead is installed along with the game.

Version 436 does two things important to this FAQ - disables the CD 
check at the start of the game, so you don't have to insert the CD 
every time you want to test a level, and gives you UnrealEd version 
2.0 instead of the standard editor. This editor makes slightly more 
sense than the earlier version.

Create a shortcut to 'c:\unrealtournament\system\unrealed.exe' on 
your desktop or start menu so that you don't have to open Explorer 
every time you start the editor. Of course, replace 
'unrealtournament' with whatever directory you installed the game in. 
Run the shortcut to get started.

You should see the UnrealEd 2.0 splash screen. After it loads (and 
this can take quite some time on some computers), you'll be in the 
editor.

If you get a cryptic error message at this point, copy out the error 
and e-mail me... I can't guarantee anything, but I'll see what I can 
do. Some people have real problems getting the editor started, so 
don't think you're alone.

---------------------------------------------------------------------
III. The Editor Screen
---------------------------------------------------------------------

Provided all has gone well at the previous stage, you'll be in 
UnrealEd 2.0. Close the 'Browsers' window for now - you don't need it 
at the moment. I'll explain the rest of the screen.

Ignoring the main display at the moment, you can see the standard 
Windows title bar and menu. Below this is a row of buttons, with 
basic functions such as Save, Load, Undo and so on.

Down the left hand side of the screen are the tools - similar to the 
tools in Paint. They are arranged in groups for clarity, and you can 
open and close groups by clicking on the icon at the top right of the 
group. This area will be referred to as the 'sidebar'.

Now to the main display. If you've ever worked with a CAD application 
this will seem familiar. You have, in order clockwise from top left, 
the Top, Front and Side windows. These show your level from various 
different viewpoints, but shown in two dimensions for each window. 
This makes it easier to line up objects in three dimensions (this 
might seem unclear now, but you'll get the idea later on).

The fourth and final window is the Perspective window, which shows 
your level from a three-dimensional viewpoint. It has various 
different modes, which can be changed using the different cube 
buttons on the top of the window. Leave it at 'Dynamic Light' for now 
- you won't see a difference if you change them anyway because 
there's nothing in the level yet.

The joystick icons in the top corners of the windows are the 
'realtime preview' buttons - if realtime preview is on, the window 
will update itself constantly even when you are doing something in 
another window. This is most useful in the Perspective window, but 
more on these later.

---------------------------------------------------------------------
IV. Moving Around
---------------------------------------------------------------------

The four windows are easy to navigate. To move around the level in 
any of the three 2D windows, simply click and hold either mouse 
button and drag the mouse in the direction you want to move. To zoom 
in or out, hold both mouse buttons. (If you have a function assigned 
to both mouse buttons it's best to disable it - set it to F7 if you 
can't disable it, as this button does nothing)

If you zoom out far enough in any window, you can see that you have 
limited space for building a level. Don't worry about this - the 
biggest level I ever built took up only about an eighth of that 
space. If you zoom in you'll see an object near the centre point of 
the map - this is the camera that the Perspective window is viewed 
from.

The Perspective window itself is slightly more complex than the three 
other windows, but once you get used to it it works very well. 
Holding the left mouse button and moving the mouse will move you 
forwards and backwards and rotate the camera horizontally. If you 
hold the right mouse button you can rotate the camera in all 
directions as you would in normal UT. Holding both mouse buttons 
gives you vertical and horizontal movement without rotating the 
camera - it 'slides' the camera.

If you look at the bottom of the sidebar, you will see an icon that 
looks like three horizontal lines (you'll need to scroll down if 
you're in 800x600 mode or below). Hover the cursor over the button to 
show its name - 'Change Camera Speed'. Clicking on this button cycles 
through the three speeds of the camera - slow, medium and fast, 
depending on which line is highlighted.

The best way to get used to this, of course, is to practice - don't 
move too far from the centre for now, though.

---------------------------------------------------------------------
V. Basic Building
---------------------------------------------------------------------

Now that you know how to navigate the editor, you can get on with 
building something. In UnrealEd (and most other map building
software), 3D shapes are called 'brushes'. Any solid objects that you
see in Unreal levels are composed of one or more geometrical brush.
To create a cube brush, right-click on the button with the cube on
the sidebar.

You now have a 'CubeBuilder' window. Here, you can enter the 
dimensions of the cube you want to build. Enter the width and breadth 
as 512, and leave the height at 256. Ignore all the other options for 
now. Click 'Build' to build the cube.

You now have a red outline of a cube (not really a cube at all, but 
that's what the program calls it) in the windows. What is important 
to remember here is that the cube does not exist as part of the level 
yet - the red outline is just a 'template' that you can use to add 
cubes to your level. This template is called the Builder Brush.

To move the builder brush around, select it by clicking on it, then 
hold down Shift and drag it using the left mouse button in any of the 
three 2D windows. You can see the brush moving around along with the 
window as you drag. It is possible to move objects in the Perspective 
window as well, but it can be difficult to see what you're doing.

If you want to move a brush around without moving the window, hold 
down Ctrl when you drag instead of Shift. This is useful for fine-
tuning the position of a brush.

Move the builder brush upwards in either the Front or Side window so
that it rests on the line running horizontally through the centre of
the map, and make sure its centre is on the vertical centre of the
map in the Top window. You're now ready to subtract the cube from
the level.

Before we go any further, I'll have to explain what I mean by 
'subtracting'. The 'empty' void that you have seen so far is not in 
fact empty, but a solid block. When you put a room into your level, 
what you are in fact doing is carving out a shape in this block 
('subtracting' the shape from the block). Once you have the room you 
can then add items and decoration into it. It seems a bit Douglas 
Adams at first, but you'll soon get used to it (as with most things 
in the editor).

To put the cube into the level, click on the 'Subtract' button. It 
looks vaguely like this:
       ________
      |        |
      |        |
 _____|...     |
|     |  .     |
|     |__._____|
|        |
|        |
|________|

It's in the section of the sidebar with all the other similar-looking 
icons - on the top right of the section. Hover the mouse to ensure 
that you've got the right button, then click on it.

You are now the proud owner of a cube. (It should have a grey bubble-
like texture on it - if you've made a mistake, click Undo and try 
again). Move the camera into it as described above. As you can see, 
the default textures look horrible, so the next step is to put the
correct textures on the surfaces.

---------------------------------------------------------------------
VI. Texturing
---------------------------------------------------------------------

If you don't know what textures are, think of them like wallpaper, or
painting a room - the texture you use is the 'paint' colour. Open the
texture browser window by clicking its icon in the bar on the top of
the screen (it looks like a painting of a landscape).

Now that the texture browser window is up, click on the 'Toggle Dock 
Status' icon, which looks like three windows. It's on the left of the 
window, just below the title bar. What this does is to add the 
texture browser to the 'Browsers' window that you saw earlier - it 
makes things easier to work with. You need to load a texture package 
before you do anything else, so click the 'Open' button in the window 
(NOT the one on the main top bar).

This will give you a list of texture packages (.UTX files) to choose 
from. Open 'Starship.utx' by clicking on it and selecting 'Open', or 
just by double clicking on it. You'll be back in the Texture browser, 
with the new textures added.

You will have noticed two combo boxes in the window. The first of 
these is the name of the texture package you're looking at (Starship 
at the moment). If you look at the contents of the combo box, you can 
see other default texture packages - it is possible to use textures 
from these packages in your level, but they are game textures and 
it's not really recommended to use them. Stick with 'Starship' for 
now.

The other combo box shows the name of the set of textures within the 
package. They have names like 'Wall', 'Floor' and so on. Even though 
they are named this way there's nothing to stop you using a floor 
texture for your ceiling, or any other combination.

The 'All' button shows all the texture sets within the current 
package, instead of getting you to view them one at a time. This can 
be useful, but sometimes you get an overwhelming list of textures.

For now, we'll stick to the basics and add suitable textures to the 
level so far. There are two ways to do this, and I'll guide you 
through both of them. First, making sure you're still on the 
'Starship' package, select the 'Floor' set and select the texture 
called 'SH_GR3'. Now, using your Perspective window (closing the 
browser or moving it out of the way if you have to), right-click on 
the floor. It will highlight blue to show it is selected, and a menu 
will appear. Select 'Apply texture...' from the bottom of the menu.

The floor will now be shown as having the texture you selected in the 
window. To apply the texture for the walls, select all four of them 
by first selecting 'Select None' from the Edit menu to clear your 
selection (this is unnecessary but a good precaution) then holding 
down Ctrl and clicking all four walls in turn. You'll have to rotate 
the camera to do this, but the selection will remain. When they're 
all selected, open the Texture Browser again, go to the Wall set and 
select 'Wall35' (or any other texture of your choice). The selected 
surfaces will automatically be textured with your choice.

Incidentally, if there is a texture selected when you place a new 
brush object in your level, the object will have that texture by 
default instead of the grey 'bubble' texture. Use this to save time.

Now deselect the walls and select the ceiling. Use any texture from 
the 'Ceiling' section - I recommend the 'Panel3' texture as it fits 
with the walls. When you've textured it, deselect everything.

---------------------------------------------------------------------
VII. Lighting
---------------------------------------------------------------------

At the moment, the level doesn't have any lighting in it. This gives 
a flat, unshaded look to the level. When you add light sources you 
can give a level more 'character' - make bright outdoor areas, or 
dark, gloomy tunnels. For now we'll add a single light to the level.

This is fairly simple - all you have to do is right-click on the 
ceiling and select 'Add Light Here' from the resulting menu (it 
doesn't have to be on the ceiling, of course). This will give you a 
light icon in the level. Select it and move it around the level in 
the same way that you moved the brush. Move it to the centre of the 
room on the ceiling.

When you've got the light in the right place, double click on it to 
show its Properties. There are a lot of things you can alter, but all 
we're interested in now are the 'LightColor' and 'Lighting' sections. 
Expand both of them.

The LightColor obviously changes the colour of the light, using an 
HLS format rather than RGB. Leave it alone for now, and look at the 
Lighting section.

What we're interested in here is the LightRadius. By default it's set 
at 64, which is usually too high for a normal light. Reduce it to 32, 
then close the Properties window.

Because of the way lights are calculated, having lights with large 
radii can slow down the level. It's better to use many light with 
small radii.

---------------------------------------------------------------------
VIII. Rebuilding
---------------------------------------------------------------------

You will probably have noticed that adding the light and changing its 
radius didn't make any difference to the display on the screen. This 
is because the level hasn't been rebuilt. Rebuilding is a process 
performed by the computer, calculating how textures should be placed 
and how they look - nothing you see in the editor is 'real' to the 
computer. Click on the cube icon at the TOP of the screen, not the 
one you used before. (Rebuild Geometry).

Nothing much has happened from your point of view, but to the 
computer the textures and surfaces are now 'calculated'. Click on the 
light bulb icon next to the icon you just clicked on.

You'll definitely see a difference now. The computer has calculated 
how the light affects the textures, and displays them as they would 
be shown in the game. To show how different the display is, try 
clicking the Textured cube (fourth from left) at the top of the 
Perspective window, and then the Dynamic Light (fifth from left) 
again.

---------------------------------------------------------------------
IX. Adding more detail (using Texture Properties)
---------------------------------------------------------------------

Now you have a light, but a light doesn't look good just on its own. 
You have to add somewhere for the light to come from to give a 
convincing effect. We'll do this now. Right-click on the Cube Builder 
icon again (on the sidebar), and enter the dimensions as Height 32, 
Breadth 64 and Width 64. Click 'Build' and then move the cube to the 
top centre of your room, so that the builder brush is 'resting' on 
the top edge of the room.

To get it aligned properly with your ceiling, you'll have to reduce 
the grid size. It's in a combo box in the lower right of the screen - 
select '8' and move the builder brush to the correct position. Before 
you subtract it, select 'Ceiling' from the Ceiling set using the 
Texture Browser. Subtract the cube, then set the grid size back to 
16.

You'll notice that the cube has defaulted to the texture you 
selected, as mentioned earlier. The cube has also joined on to the 
larger cube you subtracted earlier to become part of the room. This 
is the beginning of a light sunk into the ceiling. 

However, the texture on the edge of the smaller cube is too large - 
you can see only half of it on each side. To correct this, select all 
the textures on the edge (either move the builder brush out the way 
or press 'B' to hide it if it gets in your way). Right-click and 
select 'Texture Properties' (it should say '4 Selected' by the side 
if you've selected all the textures correctly).

Ignore all the flags for now, and select the 'Alignment' tab. Enter 
'0.5' in to the 'Simple:' box in the Scaling section, then click 
Apply. You'll see the textures resizing. Click on Hide once you've 
finished.

Now we need an actual light texture. The package called 'UTTech1' has 
some very good lights in it, so we'll use one from that. Open it up 
in the Texture Browser (select Open/UTTech1) and go to the Light set.

Select the texture called 'RCLIFLT1' while you have the top of the 
small cube selected. Again, the texture is too big, so select the 
surface and go in to 'Surface Properties' again.

Try clicking the Apply button next to 'Simple:' with the 0.5 value 
again. You'll see that while the texture is fine in one direction, 
it's still too big in the other. We need to use U and V scaling to 
sort this (V is Vertical, U is Horizontal. Don't ask me why.)

Enter 0.25 as the U value and 0.5 as the V value, then click the 
nearby 'Apply' button. Don't worry about 'Relative' for now. You can 
see that the light now looks correct, but there's one more thing to 
do to it.

The light texture has to look as if the light is coming from it. 
Therefore, the texture should be brighter than the textures around 
it. To do this, select the 'Flags' tab for the light texture and 
check the 'Unlit' box. This might imply that doing this will cause 
the texture not to be lit at all, but instead it does the opposite - 
the texture is unaffected by lights and is instead displayed at 
normal brightness.

You might want to move your light up slightly into the cube we 
created for the light. We need to rebuild again to take the changes 
into account - this time, click the button with both the cube and the 
light bulb. This rebuilds everything in the level.

---------------------------------------------------------------------
X. Saving the level
---------------------------------------------------------------------

Now would be a good time to save - UnrealEd is very unstable, 
especially when you're using the more complex elements. Saving is 
carried out in the same way as any other Windows application. Either 
select 'Save' from the 'File' menu, or click on the disk icon at the 
top of the screen. You'll have to enter a filename for your level 
when you save for the first time.

A word about filenames: Unreal Tournament looks for prefixes on a 
file name to determine what kind of level the file contains. The 
prefixes for the default levels are:

DM  = Deathmatch
DOM = Domination
CTF = Capture the Flag
AS  = Assault

We're going to be using this level as a DM level, mainly because 
they're the easiest level to create. Enter the filename as 'DM-
FirstMap' or something similar (of course, if you don't intend to 
play this level in the regular game, just enter 'FirstMap' and it 
won't show up in the file list in the game). Remember the name
'DM-Tutorial' is already taken.

---------------------------------------------------------------------
XI. Duplicating
---------------------------------------------------------------------

Now that we have one basic room, we can duplicate it like many 
other things in Windows. On the Top 2D window, select all three items 
we've put in the level so far (the two cubes and the light) by 
holding down Ctrl and clicking on them. You'll have to move the 
builder brush out the way. When you have all three selected, go to 
the Edit menu and select Duplicate (or press Ctrl+W).

You now have an exact copy of the room. It is by default shifted 16 
units along the X and Y axes. Move them over to the left of your 
original room, leaving two large squares of space between the right 
edge of the new room and the left edge of the original room. Make 
sure that the rooms are aligned correctly on both other axes (the two 
rooms will appear to merge together on the 'Side' window when it is 
selected). When they're aligned, deselect everything and rebuild all 
again.

If you look at the level from outside a room using the Perspective 
window, you can see that there are now two rooms. However, there's no 
corridor connecting them, and this is what we're going to build next.

---------------------------------------------------------------------
XII. Building a Corridor (Moving Vertices)
---------------------------------------------------------------------

We've only used cubes so far, but we'll use a more irregular shape 
for the corridor. However, the basic shape we need is still a cube, 
so construct a cube with dimensions Height 160, Width 128 and Breadth 
256. Drag the builder brush into the centre of the gap between the 
two rooms on the 'Top' window. If you can't see it, press B to show 
it.

Remember that we're working in three dimensions, so you need to drag 
the corridor down in one of the other 2D windows so that the bottom 
edges of all the cubes are aligned with each other.

We could build the corridor as a cube, but as mentioned above we're 
going to change the shape of the corridor before it is put in the 
level. Zoom in closely to the builder brush on the 'Side' window.

Click on the vertex of the cube on the left (corners are called 
'vertices' in three dimensions). A 'crosshair' will appear on the 
vertex to show it is selected. Now hold down Alt and using the left 
mouse button drag the vertex two grid spaces to the left. Do the same 
for the vertex behind this one, then move across to the other side of 
the cube and drag the two vertices two grid squares to the right.

On the 'top' window you'll see the result of moving the vertices as 
viewed from the top - the brush will appear to have two edges on each 
side. Look at the builder brush in the Perspective window and you'll 
see it has an irregular shape. Go back to the Textures browser and 
select 'Wall35' from Starship/Wall again, then subtract the cube.

You'll have to reselect the textures for the ceiling and floor for 
the corridor. Use 'SH-GR3' for the floor and 'Panel3' for the ceiling 
as before. You now have to rebuild the level and save.

---------------------------------------------------------------------
XIII. Texture Realignment
---------------------------------------------------------------------

Don't let the title put you off reading this chapter. All it means is 
lining up the textures so that they look seamless - if you move the 
builder brush away from the corridor you just created and look at the 
floor, you can see that the textures don't line up with each other, 
and there is a 'seam' on the floor. Fortunately this is easy to 
correct.

Deselect anything you might have selected, then right-click on the 
floor anywhere and go to 'Select Surfaces/Adjacent Coplanars' (or 
press Shift+C). This selects all the textures that are on the same 
plane as the texture you selected. If you look around now you'll see 
that all the floors are selected. Right-click and go to 'Texture 
Properties' again (3 should be selected).

Click on the 'Alignment' tab and click on the 'Align to floor' 
button. That's all you have to do - the textures will now be aligned 
with each other. Close the properties window.

You'll notice that realigning the textures has cancelled the light 
effect on them - to correct this, rebuild the level again, then save.

---------------------------------------------------------------------
XIV. Adding Start Points
---------------------------------------------------------------------

To make the level playable, you have to add places for the players to 
start at. These are called 'Playerstarts', appropriately enough. Open 
the Actor Browser (the chess pawn icon at the top of the screen) and 
dock the window as you did the Textures Browser. You now have a 
browser window with two tabs - Textures and Actors. This is easier to 
work with than two separate windows.

Click on the plus sign next to 'Actors' to expand the tree. Look for 
'NavigationPoint' and click on the plus sign again, then click on 
'Playerstart' to select it.

You can now select 'Add Playerstart' from the right-click menu. Close 
the browser window and add a playerstart in each room by right-
clicking near the centre of the floor and then selecting 'Add 
Playerstart'.

The default direction for a playerstart is East - this is fine for 
the left room, but in the West room you would start facing a wall. To 
correct this, go to the 'Top' window and click on the Playerstart in 
the right hand room. You will see an arrow facing East pointing from 
it. To rotate it, hold down Ctrl and the right mouse button and drag 
the mouse around until it's facing roughly West.

You now have a level with two rooms and a connecting corridor and two 
Playerstarts. It's a very simple level, but there's enough there to 
test.

---------------------------------------------------------------------
XV. Testing the Level
---------------------------------------------------------------------

This is probably what you've been waiting for - running the level in 
Unreal Tournament. Before you do this, though, rebuild the level and 
save. Sometimes UT can crash while exiting back to the editor. When 
you've rebuilt and saved, click on the joystick icon at the top of 
the screen next to the rebuilding buttons.

It's best not to have bots in the level at the moment, as it's too 
small and there are only two playerstarts. If you have bots as 
default, start a new practice session with 0 bots then exit and 
reload the map. Explore what you've made, then exit UT.

---------------------------------------------------------------------
XVI. Adding and the 2D Shape Editor
---------------------------------------------------------------------

I mentioned Adding a while ago - this is the opposite of subtracting, 
as you might imagine. Adding puts solid objects back into the map 
after an area has been subtracted. I'll describe how to make a 
'raised' section of wall. We could do this by adding a cube, but this 
would leave 90 degree edges, which generally don't look good. To 
create a more complex shape we can use the 2D Shape Editor.

Open up the 2D Shape Editor by clicking its icon on the top bar (it 
looks like a triangle with marked corners). The Editor will open - 
you should maximise it to get a better view. At the moment you have a 
square. The green smaller square is the pivot of rotation of the 
polygon - if you don't know what this is then don't worry about it 
for now.

You can change the number of vertices on the shape, but it has the 
right number of sides for now. Count where the darker grey lines 
cross as the origin (0,0) and click and drag the four vertices to 
these points: (-2, 4); (-2, -4); (2, 6); (2, -6).

You should now have something resembling this:

  /|
 / |
|  |
|  |
|[]|
|  |
|  |
 \ |
  \|

Now that you've got the basic shape, you need to make it three-
dimensional. Click on 'Process/Extrude' then set the depth to 256 and 
click OK. What this does is create a prism with the ends the same 
shape as the polygon you drew in the 2D Shape Editor. Close the 
Editor for now.

Rest the builder brush on the inside side of the room on the right in 
the 'Top' window (make sure it's aligned with the room correctly in 
the other windows as well, remember). Select the 'Wall35' texture as 
before and click on the Add button. It is to the left of the Subtract 
button.

You'll notice that subtracted brushes are drawn in brown while added
brushes are blue. This helps to distinguish between them.

If the Playerstart you put in the level earlier is inside the added
(blue) brush, move it away. Players can only exist in subtracted
sections of the level.

---------------------------------------------------------------------
XVII. Texture Rotation
---------------------------------------------------------------------

As you can probably see, the wall textures have appeared at 90 
degrees to the vertical on the added brush. Correcting this is again 
fairly simple. Right-click on one of the surfaces of the brush you 
just added, and go to 'Select Surfaces/Matching Brush'. This is a 
quick way of selecting all the surfaces on one brush. Right-click and 
select 'Surface Properties' then go to the 'Alignment' tab. Hold down 
Shift and click on the '90' button (this rotates the texture 
anticlockwise 90 degrees). Then click on 'Wall Pan' in the 
'Alignment' section to correct the seams on the textures in the same 
way as you did the floor. Rebuild the level and save again.

---------------------------------------------------------------------
XVIII. Texture Replacement
---------------------------------------------------------------------

Select 'Textured' mode (fourth cube from left at the top of the
Perspective window). If you're ever working in an area with not a lot
of light it's often easier to see what you're doing in this mode. It
doesn't affect the actual level in any way.

Replacing the textures in the level can completely change the 'feel'.
The textures used so far have been metallic - we're going to change
the level into something similar to DM-Stalwart. To do this, first
look in the 'UTTech1' texture package. If you've saved and exited at
any point, only the textures used in your level are loaded, so reload
the package. Look in the 'Walls' section and select the 'ClifBrk3'
texture (make sure you don't have anything in the level selected
first).

Now right-click on any wall and go to 'Select surfaces/Matching
Texture'. All the walls with the same texture as the one you clicked
on are now selected. 

Right-click again on any of the selected surfaces and select 'Apply
texture'. The metallic walls will now be replaced with the brick
texture.

Do the same for the ceiling - this time use Ceiling/NMCeiling5 as the 
texture. 
Select all the ceilings ('Matching Texture') and apply the texture. 
After this 
repeat the same process for the floor - I recommend using 
'Floor/BMFloor2', but 
you can use whatever you like.

If you go back into Dynamic Light mode (fifth cube from left), you'll 
see the 
different effect that the new textures create.

---------------------------------------------------------------------
XIX. Pickups
---------------------------------------------------------------------

To make a decent level, you need to think about where your weapons, 
ammo, health and other pickups will be placed. For example, a Shield 
Belt in the middle of the main room of a level isn't good item 
placement - you should make the player go slightly out of the way to 
get the best items.

The exception, of course, is in DM-Pressure, where all the powerful 
items (Shield Belt, Damage Amp, Rocket Launcher) are placed in one 
room, but you have to take a risk to get them.

It's your choice where you place the items in this level, but I'll 
give my recommendations again. Placing items is similar to the way 
you placed Playerstarts.

Open the Actor browser, then open the tree 
Actor/Inventory/Weapon/TournamentWeapon. You're given a list of 
weapons from Unreal Tournament, but some have different names from 
what they're called in the game.

ChainSaw : Chainsaw (usually you only start with this with the
           mutator on.) If you pick it up in-game you get a strange 
           message that hints at Doom - "It's been five years since
           I've seen one of these". <¦-)
enforcer : Enforcer (you start off with this, so it's unusual to have 
           it in a level. Under 'enforcer' is 'doubleenforcer' - 
           don't place this in a level as it has the same effect as 
           picking up an additional Enforcer)
ImpactHammer: The Impact Hammer (again, there's no real point in 
              having this in a level as you usually start with it).
Minigun2: Minigun
PulseGun: Pulse Gun
Ripper: The Ripper
ShockRifle: ASMD Shock Rifle (under this is 'SuperShockRifle', which 
            is the weapon from InstaGib mode. It's not recommended to 
            place this in a level as it has infinite ammo and kills 
            any player instantly.)
SniperRifle: Sniper Rifle
Translocator: Translocator (again, you wouldn't usually use this)
Ut_biorifle: Bio Rifle
UT_Eightball: The rocket launcher (it was called the Eightball in 
              Unreal, but obviously was changed for the sequel.)
UT_FlakCannon: Flak cannon
WarheadLauncher: The Redeemer!

Place a Pulse Gun in the Northeast corner of the East room, inside 
the alcove. To do this, select PulseGun and right-click where you 
want to place it, then select 'Add PulseGun Here'. You can move it 
around in the same way as other objects once it's placed.

Now that you have a weapon you need ammo for it. The ammo is in a 
rather awkward place, in Actor/Inventory/Pickup/Ammo/TournamentAmmo. 
Place a couple of PAmmo in either the same alcove, or the one to the 
South if you want to delay the player a bit.

You have a weapon, now place a few health items around the level. 
They are in Actor/Inventory/Pickup/TournamentHealth.

Healthpack: The Big Keg O' Health.
HealthVial: Health Vial +5
MedBox: Medbox +20

You could place a few health vials in the corridor, and a couple of 
medboxes in the West room (note that this is too much health for such 
a small level, but this could become part of a bigger level). The 
health vials look better when they're lined up, so adjust their 
positions using the Top window.

Incidentally, the 'special' pickups such as Shield Belt, Damage Amp 
and Invisibility are in Actor/Inventory/Pickup/TournamentPickup. The 
only thing worth mentioning here is that Stealth gives PERMANENT 
invisibility.

---------------------------------------------------------------------
XX. Pathnodes
---------------------------------------------------------------------

Bots are 'blind' to walls and surfaces, and rely on navigation points 
to move around. They move through the level between points unless 
they encounter an enemy. Using navigation points is like a simple way 
of programming bots, and showing them where lifts and other special 
areas are. To make the level suitable for bots, we're going to add 
some of these navigation points.

You've already used one, of course - the Playerstart. It shows bots 
(and in this case players) where to start. The next simplest 
navigation point is the Pathnode.

As said before, bots can't 'see' walls in your level, but they can 
work out routes through it if you place pathnodes to guide them. The 
pathnode is under Actor/NavigationPoint. Select it then add a 
pathnode anywhere on the floor in your level.

Don't ask me why Epic chose to use an apple as the icon. I get a lot 
of people looking over my shoulder asking 'What are those apples?' 
when I'm making levels... anyway, pathnodes should be placed around 
the level to form a path for bots to follow. Pathnodes are 
unnecessary near items because bots can recognise items in the same 
way as pathnodes.

It's best to place a pathnode at each end of the corridor rather than 
just one in the middle. Also add a couple of pathnodes in each room 
so that the bots can follow a few different paths. Rebuild the paths. 
(Use the button that looks like a network next to the Rebuild All 
button).

You'll have got a window saying 'Adding reachspecs...' but nothing 
will have happened from your point of view. To show the paths that 
were calculated, right-click on the title of any view window ('Top' 
and the Perspective window are the most useful) and go to View/Show 
Paths.

If you see a crucial area not accessed by paths, add a pathnode there 
and rebuild again. (An example would be no paths going in to or out 
of the corridor). Don't worry about the corners of rooms and so on. 
Once you're happy with the paths, select 'Show Paths' again to hide 
the paths, as they tend to get in the way when you're editing 
normally.

Try rebuilding, saving and testing the level now. To add a bot, press 
TAB to get the quick console up, then type 'Addbots 1'. You should 
see that the bot moves semi-intelligently around the map.

---------------------------------------------------------------------
XXI. More Building
---------------------------------------------------------------------

By now you should know how to create basic rooms and add more detail 
to them. It's largely up to you how you continue with the 
construction of the level, but there are still more things to learn 
about the Editor.

It's probably better to stop here for a while and try building some 
simple levels for yourself, using the techniques already taught here. 
Your first few levels won't be that great, but it takes practice to 
build a good level. When you think you've practised enough, come back 
and read more of this. You don't have to follow the guidelines 
exactly from now on.

We're now going to try building a sloped corridor to the North of the 
west room. Duplicate the corridor you built earlier by selecting it, 
then going to Duplicate on the Edit menu. Move it away from the rest 
of the level.

Of course, it's pointing in the wrong direction. You can rotate 
brushes in exactly the same way as you rotated the Playerstart a 
while ago - hold down Ctrl and right-click and drag. Align the 
corridor so that it is pointing from North to South, then place it so 
that it comes out from the North wall of the west room.

To make it slope upwards we need to adjust the vertices again. Save 
before you do this, as the editor is prone to crashing if you drag 
two vertices on top of each other by mistake. Use the 'Side' window 
to drag all four of the vertices on the left hand side upwards four 
grid spaces each.

Look in the Perspective window - you'll see the sloped corridor's 
outline if you have the brush selected, but no surfaces or textures. 
You need to rebuild the level so they are calculated.

Once that's done, we're going to attempt to build a more complex 
room. It's difficult to describe, so I'll explain it in sections.

First, create a cube with dimensions H256, W768, B512. Subtract this 
when it is directly to the North of the west room (at the North end 
of the corridor). Make sure that it is aligned vertically with the 
high end of the sloped corridor. Give it the same floor, wall and 
ceiling textures as for the rest of the level.

Now create another cube, this time with dimensions H256, W256, B768. 
Subtract this when it's on the East side of the cube you just added, 
at the North end. (A diagram would make things clearer...)

 ______________________________
|         |                    |
|         |         2          |
|         |____________________|
|    1    |
|         |
|         |
|         |
|_________|
  ||   ||
  ||   || <-- Corridor to West room

Subtract the brush to get a corridor jutting out from the new room. 
That's not what we want the end result to be, but as we build the 
rest of the room it will change. Make a third cube: (H256, W512, 
B256). Move it to location 3.

_______________________________
|         |                    |
|         |         2          |
|         |____________________|
|    1    |      |
|         |      |
|         |  3   |
|         |      |
|_________|______|
  ||   ||
  ||   || <-- Corridor to West room

Don't subtract it yet. This brush is going to have a slope down to a 
lower level of the room. After making sure that the brush is aligned 
horizontally, go to the Front window and move it upwards so that you 
can see it more clearly without the rest of the level in the way. 
Pull down the lower right vertices four squares - the same number of 
grid spaces as you pulled up the sloped corridor (so that the bottom 
of the slope is on the same level as the first room you built). Don't 
adjust the top vertices as we want to keep the ceiling at the same 
height.

The fourth and final cube to subtract is shown in location 4.

_______________________________
|         |                    |
|         |         2          |
|         |____________________|
|    1    |      |             |
|         |      |             |
|         |  3   |     4       |
|         |      |             |
|_________|______|             |
  ||   ||        |_____________|
  ||   || <-- Corridor to West room

Note that it juts out past the edge of cube 3. The dimensions to use 
are (H320, W704, B512). Make sure it's aligned correctly in every 
direction (the edge of brush 4 should be only a few spaces away from 
the North wall of the first room you built) and then subtract it.

Put the correct textures on all the surfaces if you haven't been 
doing this already. The result of subtracting those four brushes is a 
room with a platform running along the North edge and a lower section 
in the South, with an E/W ramp connecting them both at the West side.

---------------------------------------------------------------------
XXII. Deintersecting
---------------------------------------------------------------------

As we're not going to be separating these four brushes or using them 
separately, it's best to 'group' them together so that the room is a 
single complex brush. To do this, first move all four brushes 
together (Ctrl-Click them) and move them well away from the rest of 
the level. Rebuild geometry only (Cube icon).

Now create a cube (H512, W1024, B1536) and place the builder brush so 
that it completely encloses the room - make sure NOTHING except the 
room is enclosed by the brush. What we're going to do is deintersect 
this brush.

Deintersection is difficult to explain. The best analogy I could come 
up with is this: Imagine a balloon placed at the centre of the 
builder brush. Air is pumped into this balloon until it fills the 
area enclosed by the builder brush entirely, covering all the 
surfaces and taking their shape.

Deintersect the brush now. The icon is under the Subtract button.

      ..........
      :        :
      :        :
.....:__      :
:     |  |     :
:     |__|.....:
:        :
:        :
:........:

The brush will have taken the form of the room. Subtract this new 
brush while it is in the location where the four brushes originally 
were, then delete all the four original brushes that made up the 
room. Rebuild again.

You don't need to use this just now, but Intersecting is the opposite 
of deintersecting. The button for this action is to the left of the 
Deintersect button (under the Add button). In Intersection, the 
builder brush acts like a plastic bag having the air pumped out of 
it, and will take the form of any geometry within the area enclosed 
by it.

---------------------------------------------------------------------
XXIII. Adding Pillars
---------------------------------------------------------------------

Of course, this room is a bit plain. Supporting pillars would provide 
some decoration, and they could also be used as cover in the game. 
Make a cube (H256, W64, B64) and, using the texture 'PillarPln' from 
UTTech1/Pillar, add it near the top of the ramp (on the flat surface, 
otherwise it won't look realistic). Drag the builder brush over and 
add another pillar near the end of the flat platform.

Finally, make a cube (H320, W64, B64) and place this taller pillar 
somewhere near the bottom of the ramp (remember to adjust the 
vertical position as well). If you want, add some more pillars, but 
don't crowd the room too much. Rebuild the geometry once you're 
finished (build the lights as well if you want, but if you do you'll 
have to go into Textured mode because there are no lights in this 
room yet).

---------------------------------------------------------------------
XXIV. Skyboxes
---------------------------------------------------------------------

Skyboxes are the backdrops you can see on levels with outdoor areas 
like DOM-Sesmar. They're not part of the level itself, but you can 
see them as the backdrop. We're going to be creating a simple 'sky at 
night' style skybox, which is not always appropriate but is the 
simplest to make.

Create a cube with all sides 512, then place it well away from the 
rest of your level (somewhere where you're never likely to want to 
build the actual level later) - you can move it once you've created 
it, but it's easier to just build it in the right place to begin 
with. Apply the texture GenFluid/sky/NghSky to all six sides of the 
cube (remember you could always select this texture first and then 
subtract the cube).

Now add a SkyZoneInfo actor inside this cube. This actor is in 
Actor/Info/ZoneInfo. (Add a SkyZoneInfo, not a RockingSkyZoneInfo). 
Drag the actor to roughly the centre of the cube.

There's one more thing to do with the skybox - make all the surfaces 
Unlit (in Surface Properties). This makes sure that even without 
light you can see the SkyBox. Do this and rebuild the level again.

We now need to show this skybox in parts of the level. Build a cube 
(H128, B256, W32) and subtract it so it juts out from the West side 
of the complex room. This is the beginning of our 'window' outside -  
use the 'ClifBrk3' texture again. Add a couple more windows on the 
North wall by rotating the builder brush (Ctrl-Right click) and 
subtracting again. Just to clarify, here's the diagram again.
     _____          _____     
   _|_____|________|_____|_______
  |         |                    |
 _|         |         2       O  |
| |       O |____________________|
| |    1    |      |             |
|_|         |      | O           |
  |         |  3   |     4       |
  |         |      |             |
  |_________|______|             |
    ||   ||        |_____________|
    ||   || <-- Corridor to West room

The pillars, marked as O, don't have to be in exactly the same place 
as I have them.

When you rotate the builder brush, select 'Reset/Reset Rotation' from 
the right-click menu when you've finished. Otherwise the builder 
brush keeps rotated even when you're entering new values into the 
cube builder.

Now we've got the window shapes, but we need to tell UnrealEd that we 
don't want the backs of the windows to be shown - instead the SkyBox 
will be shown in their place. Select the back of all three windows, 
then go to Surface Properties and check the 'Fake Backdrop' flag.

You can't see any change yet, but if you activate Realtime Preview 
(the joystick icon at the top of the Perspective window) you'll see 
that the skyzone is shown in place of the windows. Deactivate 
Realtime Preview again.

---------------------------------------------------------------------
XXV. More Lighting
---------------------------------------------------------------------

We still need lights in the new room, and the light is going to come 
from the windows. Add a light on any window you want and edit its 
properties.

The light needs a slight blue tinge to hint at moonlight. Open up the 
LightColor tree and click on the 'Color' button. The resulting menu 
is roughly the same as the colour selector in Paint. Select a light 
blue colour (maybe HLS 163, 240, 186) and press OK. The other 
properties are fine for now, so close the Properties window and 
duplicate the light twice, dragging each new light to its 
own window. When you've got them all in place, rebuild the level 
again.

Depending on what you want to do now, you could add some ceiling 
lights, or try making the moonlight less bright if you want. 
Experiment around a little before moving on.

Don't forget to add pathnodes and other items to this room - a couple 
of Playerstarts could be placed here as well. I recommend placing a 
Flak Cannon along with some ammo at the end of the raised platform.

---------------------------------------------------------------------
XXVI. Glass
---------------------------------------------------------------------

We're now going to add a glass window between the complex room and 
the first room you built. This glass is going to be unbreakable - 
breaking glass is possible, but is more difficult to make.

Create another cube (H128, W64, B256) and place it in the space 
between the two rooms at an appropriate height (if it's the wrong way 
round you have to reset the rotation of the builder brush). Subtract 
it, again using the ClifBrk3 texture. This is the window in which 
we're going to place the glass.

The glass is only a 2D surface, so we don't need a Cube brush. 
Instead we're going to use a Sheet brush.

Now right-click on the Sheet button and select 'Build'. The Sheet 
button is the one that displays a flat plane near the Cube button. 
Change the Axis to AX_Yaxis and make the height 128 and the breadth 
256. If you didn't move the builder brush away from the window then 
the sheet will be in the right place already (in the middle of the 
window).

Before we add the glass we need a glass texture. There's a good one 
in Coret_FX/Glass - select either of the textures there. Once you've 
selected a texture, left-click on "Add Special Brush" (the blue 
square).

You now get a window detailing all the types of Special brush. Select 
the Prefab "Transparent Window" and click OK, then Close.

The transparent window is now in place, but sheets are never solid. 
The player could walk through or shoot through this glass. To prevent 
this from happening we need to use an invisible 'blocker' brush.

Create a cube, this time using the dimensions (H120, W24, B248). Note 
that this cube doesn't quite fit the grid, but instead stops short of 
the gridlines. Place it just on the North side of the window (in the 
alcove for the window, but not actually touching any other brushes). 
Click on 'Special Brush' again.

We want the brush to be invisible, but still block the player. Select 
the prefab 'Invisible Collision Hull' and click 'OK'. Note that this 
brush is a semi-solid (grey). Semi-solids are normally used for very 
small detail brushes, and for brushes which are off the grid like the 
one we just created. Never subtract anything from a semi-solid - it 
will make the level very unstable. However, when semi-solids are used 
correctly they can make the level more stable and simpler for the 
computer to draw. DM-StalwartXL is an example of a level that makes 
good use of semi-solids.

You now have an invisible solid brush that blocks the player or any 
bullets from passing through the window. (Note that you could also 
have a blocker brush on the other side of the window as well - this 
is not usually necessary as it will appear that the player can't get 
through the window anyway). At this stage, you might want to rebuild 
everything and test the level to see what I mean.

---------------------------------------------------------------------
XXVII. Conclusion
---------------------------------------------------------------------

The main part of the level is complete now. Try building more of the 
level yourself - remember, try to make every part of the level 
connect to other parts, don't have dead ends. Also, don't just make 
rooms cube-shaped - try using more interesting shapes by building 
rooms from many brushes then deintersecting them as shown for the 
large room. Unreal editing gets a lot easier with practice. 

=====================================================================
Section 2 - Further Techniques
=====================================================================

---------------------------------------------------------------------
I. Introduction
---------------------------------------------------------------------

This section covers use of UnrealEd beyond basic building of levels. 
Individual sections cover topics such as adding sounds, lifts and 
many other things to a map. Trying to incorporate these techniques in 
the tutorial level above would make good practice (I must sound like 
a music teacher or something).

---------------------------------------------------------------------
II. Level Properties
---------------------------------------------------------------------

You'll have noticed that levels in Unreal Tournament usually have a 
background music playing, and a screenshot at the side when you 
select a level in the Practice Session menu. This section shows how 
to achieve both of these using the Level Properties window.

First of all, to get at the Level Properties, select it from the View 
menu or press F6. Open up the LevelInfo tree. 'Author' is the name of 
the author of the level (the third line of the information given in 
the Practice menu). IdealPlayerCount is the number of players 
recommended for the level (enter something like '4 to 8' in here). 
Finally, Title is what you want the game to call your level - like 
Liandri Central Core or Fractal Reactor.

LevelEnterText does nothing, but strangely, text is entered here for 
some of the level provided with the game. I can only assume that this 
field was going to be used, but then Epic decided against it.

Screenshot is more complicated. Ideally you could just use any 
texture, but instead it has to be a texture in a package called 
'MyLevel'.

First of all, take a screenshot of your level (it's best to do this 
in Observer mode of the game). Reduce this screenshot to 256x256 
pixels and save it as a PCX image (Paint will do this, but it's 
better to use a more advanced package). Now go to the Textures 
Browser and select 'File/Import'.

Browse for your file, select it and click Open. You'll now be given 
another menu asking where to place the texture. Type 'MyLevel' for 
the package (this is essential), then 'Screenshot' for both the group 
and the name. Deselect 'Generate MipMaps' as this will prevent the 
texture from blurring.

Once you've imported the texture, select it in Level Properties by 
clicking the 'Use' button next to Screenshot while you have the 
Mylevel/Screenshot/Screenshot texture selected in the Texture 
browser.

Finally, adding music to the level is a lot simpler. Either you can 
use a standard music (easiest) or write your own (harder). You can 
even import MP3s into a level with a bit of trouble.

I'll cover using a standard music first. Open the Audio tree in Level 
Properties. Select the '...' button next to 'Song' to bring up the 
Music Browser, then select 'Open Package' in this window to display a 
list of UMX files. Select one of them and open it. Listen to it by 
selecting it in the browser and pressing the Play button. (Press the 
Stop button to stop playing, of course). Once you've found a suitable 
music, select it then click 'Use' in the Level Properties window.

Writing your own music is harder, of course. For this you need a MOD 
writing program. ModPlug Tracker is what I use. Its site can be found 
at www.modplug.com. Download it and (here's the hard bit) learn how 
to use it.

Once you've written a MOD (in IT format is best), save it. To import 
it into Unreal Tournament, open the Music Browser and select 
File/Import. UnrealEd supports a wide range of MOD files (all the 
ones created by Modplug, plus a few others). Select the MOD you want 
to use, then save it out as a UMX file by selecting the disk icon in 
the browser. Now just use the music as you would a standard music 
(you need to include this UMX package in the zip if you're planning 
to distribute your level).

Now on to using MP3s in Unreal Tournament. I'll say now that this 
isn't recommended as it can increase the size of your level by about 
30MB - or a lot more than that if you're using an Iron Maiden track 
<¦-). It also makes the level quite unstable, as UT has to load a lot 
of music data before playing the level. Still, if you're not put off 
by that, here's how to do it.

This involves the use of ModPlug Tracker again. Convert the MP3 to a 
wave file using a separate convertor - there are many available on 
the Internet. Now import the wave file into Modplug and create enough 
empty MOD patterns so that the MP3 plays all the way through. Now 
save the music as any type of MOD file (again, using IT format is 
best). Import this IT file in the same way as you would for the 
previous type of music.

Now save and run the level, and with any luck the music should play 
in the background. If you look at your level in the Practice Session 
menu, you'll see the screenshot and information you put in.

---------------------------------------------------------------------
III. Movers and Triggers (Doors and Lifts)
---------------------------------------------------------------------

Doors are made using a special type of brush called the Mover. As its 
name implies, this is a brush that can move.

First, using an open space, create the door as you want it to look 
like - keep it simple at first, perhaps simply a thin cube brush with 
door textures on it. As you get used to editing try adding lights or 
more complex door shapes - my map DM-Freezerburn uses doors with 
lights at the base and windows in them.

When you've created the door, intersect it (make the builder brush 
enclose it and then click Intersect). Drag the intersected brush to 
where you want the door to appear and click Add Mover (the button 
looks like a box with arrows).

The brush will have appeared as a purple outline in the map. Now 
select it and right-click to get the menu. We need to tell the door 
where to move to when it opens. Select Mover/Key 1, then drag the 
door to where you want it to move. Select Mover/Key 0 (Base) again 
and the door will jump back to its original setting.

The door will now work in the level. Run into the door and it will 
open, and it will close again after a while. This is a very basic way 
of making a door, and there are ways to improve it.

Adding sounds to a door is simple. Select the mover and go to its 
Properties menu, then find MoverSounds. Select one of the blank 
fields and click the '...' button to get to the Sound Browser. Open 
the package 'DoorsAnc' or 'DoorsMod' (meaning Ancient Doors or Modern 
Doors) and play a few of the samples.

A mover needs five sounds. ClosingSound and OpeningSound are the 
sounds that play when the door starts to move. MoveAmbientSound is 
the continuous sound played when the door is moving, and ClosedSound 
and OpenedSound are used when the mover stops moving. Generally, the 
pairs Closing/Opening and Closed/Opened will be the same sound.

An example of a good combination to use is:

ClosedSound:      md6end
ClosingSound:     md6start
MoveAmbientSound: md6loop
OpenedSound:      md6end
OpeningSound:     md6start

Lifts are created in exactly the same way as doors - just make the 
platform, intersect, make a mover from it and define the keys.

Now close the MoverSounds tree and open up Mover. This gives a lot of 
options for the behaviour of the mover, and I'll explain them one by 
one.

BDamageTriggered: Whether the mover is activated by shooting or 
damage such as using the Impact Hammer.

BDynamicLightMover: Recalculates lighting on the mover continuously 
as it moves. Normally a mover's appearance stays the same no matter 
where it moves to, but with this option the appearance will be more 
realistic. This can slow down the level a lot.

BrushRaytraceKey: Selects the key that the mover will be rendered in 
when you rebuild lighting. For example, selecting 0 (as is normal) 
will calculate lighting on the mover as if it was in its starting 
position in the level.

BSlave: ?

BTriggerOnceOnly: If true, the mover will only move away and back to 
its starting position once.

BumpEvent: The name of the event that is sent when the door is bumped 
into by a player (more on this later).

BumpType: Select what qualifies as a 'bump' (players, pawns, or 
anything).

BUseTriggered: ?

DamageThreshhold: How much damage the mover can take before moving, 
if bDamageTriggered is True.

DelayTime: The time in seconds that a mover waits between being 
triggered and actually moving. This is normally used for lifts rather 
than doors.

EncroachDamage: The damage caused when the mover hits a player.

KeyNum: Does the same as selecting 'Key X' in the right-click menu.

MoverEncroachType: Tells the mover what to do when it hits a player. 
ME_StopWhenEncroach stops the mover entirely. ME_ReturnWhenEncroach 
is the default, and makes the mover return to the position it came 
from when it hit the player. ME_CrushWhenEncroach does exactly as it 
suggests - crushes the player if it hits them (instant death). 
ME_IgnoreWhenEncroach ignores everything that gets in the way and 
simply passes through them.

MoverGlideType: Selects the type of movement by the mover. 
GlideByTime slows the mover down at the start and end of its 
movement, as far as I know.

MoveTime: The total time it takes for the mover to move from Key 0 to 
its final position.

NumKeys: The number of keys a mover moves through (usually keep this 
at 2 unless you're making a door with very complex movement).

OtherTime: ?

PlayerBumpEvent: The event sent when a player bumps into the mover.

ReturnGroup: ?

StayOpenTime: The time that the mover waits before returning to its 
original position.

WorldRaytraceKey: Selects the mover key that the world will be 
raytraced in. For example, if this is 0 the world will be raytraced 
as if the door is in its original position (blocks light). You could 
also place the door out of the level in key 8 that is otherwise 
unused, and use this (the world would be raytraced as if the door is 
not there).

Another important property is in Object. InitialState selects the 
conditions for which the mover will activate. The main ones are 
described here.

BumpOpenTimed: The mover will activate when it is walked in to.

StandOpenTimed: The mover will activate when it is stood on (use this 
for lifts).

TriggerOpenTimed: When the trigger linked to the mover is activated, 
the mover will activate (use for remote buttons).

TriggerToggle: The mover will switch back and forward between its 
keys when the trigger is activated.

To activate a mover remotely, or from a distance rather than having 
to walk right into it, triggers can be used.

Add a trigger near the door (not inside the mover). You can find 
triggers in Actor/Triggers/Trigger. Look at the 'Trigger' tree in its 
Properties. Most of the options here are self-explanatory, and very 
similar to the Mover Properties. 

Look at the 'Events' tree. Here you'll find two fields: Event and 
Tag. Tag is a name given to an object in the level. Event is the name 
of the event which is sent to objects with the same tag when the 
trigger is activated. This may be unclear at first. Tag does not 
matter in the case of a trigger. Make the trigger's Event 'Door1'. 
The trigger will activate all items with the tag 'Door1' when the 
trigger is activated. We want the door we created earlier to be 
activated. Select the mover and change its Tag to Door1.

You'll now see a line joining the trigger and door in the 2D windows. 
This shows that the trigger and door are linked by the event. Make 
sure the door is set to one of the Trigger settings (TriggerOpenTimed 
is the best to use for a basic example) and rebuild and run the 
level.

There are many other things possible with movers - secret doors, for 
example. One way to make a secret door is to use a wall texture on 
the mover and have the trigger as a shootable button. You may have to 
use an extra trigger to provide a way out of the secret area, 
remember.

---------------------------------------------------------------------
IV. Zones
---------------------------------------------------------------------

Zones are used for a number of things in Unreal. Water is the most 
obvious use, but they can also be used to speed up your level. 
Splitting the level into zones allows the game to determine what 
parts of the level to display, making the game faster.

To create zones, a part of the level must be sealed off entirely 
using surfaces called Zone Portals (these surfaces are invisible to 
the player during normal play, and can be walked through). Create a 
room with only a small number of exits if you haven't already got a 
suitable room to use. Using the brush builder, create a sheet brush 
that completely covers the door of the room (it has to be completely 
'airtight'). Position this sheet across the door, select a texture 
that you wouldn't normally use (to distinguish between the zone 
portal and normal walls) and add it as a special brush 'Zone Portal'.

Again, make sure that the portal is completely airtight. If you have 
more than one exit to the room, block them off using zone portals in 
a similar way. When you create zone portals aim to have them as small 
as possible without allowing any 'leaks' - this helps to speed your 
level up more. Having portals in doors and corridors is fine, but not 
in the middle of large rooms.

When you've completely sealed off the room, rebuild the geometry and 
enter Zone/Portal View (the last cube along to the right on the 
Perspective window). The room you sealed off will appear as a 
different colour from the rest of the level. This is a Zone. You can 
now zone off other rooms in the same way.

Zones can be assigned special properties. To do this, you have to 
place a ZoneInfo inside the zone (the SkyZoneInfo used in the 
tutorial is an example - it tells the computer that the zone should 
be used for the backdrop to a level). The ZoneInfo objects can be 
found in Actors/Info/ZoneInfo. To create water, make it a separate 
zone. The zone portal, which is the surface of the water, should be 
visible and have a water texture on it - perhaps make the surface 
transparent as well.

You can also give names to your zones. The name of the zone appears 
beside your team mates' names during a team game to tell you where 
they are. This can be changed under 'ZoneName' in the LocationStrings 
section of the properties of the ZoneInfo.

---------------------------------------------------------------------
V. Light Types
---------------------------------------------------------------------

You may have noticed that there's more to lights than just giving 
them brightness, colour and radius - you can also change the type of 
light generated by them. Look at the LightEffects available in the 
'Lighting' section in the Light Properties. It's really better to try 
them for yourself, than explain them here. Remember that you'll have 
to turn on Realtime Preview (the joystick icon) to see the effects 
properly.

LE_None: No special effects (standard light).

LE_TorchWaver: Subtle fire effect, as if the light was a torch.

LE_Fire: Fire effect, as if the light was a fire (or larger torch).

LE_WateryShimmer: As if the light was being reflected from a water 
surface (try using this underwater).

LE_Searchlight: A rotating light.

LE_SlowWave: Waves of light spreading out slowly.

LE_FastWave: Waves of light spreading out quickly.

LE_CloudCast: ?

LE_StaticSpot: ?

LE_Shock: Light strobing on and off.

LE_Disco: Random 'disco' lights.

LE_Warp: ?

LE_Spotlight: One spot of light.

LE_NonIncidence: Ignores all solid surfaces and instead passes 
through them.

LE_Shell: Only lights up the edge of the light's radius.

LE_OmniBumpMap: ?

LE_Interference: Like SlowWave and FastWave, but different according 
to what surface the light is on.

LE_Cylinder: Lights a cylinder of light instead of a sphere.

LE_Rotor: As if a fan was in the way between the light and the 
surface.

LE_Unused: ?

Some of these effects can be modified using the LightPeriod and 
LightPhase properties. LightPeriod speeds up or slows down the 
animation of the light, while LightPhase changes the part of the 
animation the light starts from.

In addition to these effects, the type of light can also be changed 
using the LightType property.

LT_None: No light. Shouldn't be used for lights, obviously.

LT_Steady: Normal light.

LT_Pulse: Pulses the light on and off.

LT_Blink: ?

LT_Flicker: Flickers the light randomly, as if the light was broken.

LT_Strobe: Toggles the light between on and off.

LT_BackdropLight: ?

LT_SubtlePulse: Like Pulse, but less noticeable. Inventory items also 
pulse in this way.

The next two effects can be changed by changing the 'Skin' of the 
light under Display. Again, it's really better to see it for yourself 
rather than try to describe it. Textures suitable for this kind of 
light can be found in the texture package GenFX, but any texture can 
be used.

LT_TexturePaletteOnce: Cycles the light through the palette of the 
texture selected in Display/Skin once only.

LT_TexturePaletteLoop: Cycles the light through the palette of the 
texture selected in Display/Skin repeatedly.

Bear in mind that all light effects will slow down the level, so 
don't go over the top.

---------------------------------------------------------------------
VI. Teleporters
---------------------------------------------------------------------

Teleporters are objects which, as their name suggests, teleport you 
around the level when you walk into them. To add a teleporter to your 
level, use it like a pathnode - select ‘Teleporter’ from the 
NavigationPoint list and place it on a floor.

Alter the direction of the teleporter to the direction you want the 
player to be facing when they emerge from it - if you don’t want it 
to alter the direction of the player then set ‘ChangesYaw’ to False 
in the Teleport section of the Teleport properties. Change the 
teleporter’s Tag (in Events) to something recognisable.

Do the same with another Teleporter object at your destination point. 
Give this a recognisable tag as well. Now, set the URL property of 
your teleporters to match the Tag of your other teleporter. For 
example:

Teleporter 1 Tag: BottomFloor
Teleporter 1 URL: TopFloor

Teleporter 2 Tag: TopFloor
Teleporter 2 URL: BottomFloor

If you want your teleporter to be one-way, just give the second 
teleporter no URL.

Now rebuild and run your level. That’s all there is to making a 
working teleporter, but as you will have noticed you can’t see them. 
You have to use an object as a ‘marker’ so that players will be able 
to see where the teleporters are.

I normally use the ‘UTFlare’ object for doing this. Go to 
Decoration/ut_decoration/UTFlare and place one in your level. This 
object is purely decorative so it does not matter how we alter the 
appearance of it. Go into Display and select ‘...’ for the Texture of 
the UTFlare. This opens the Texture Browser. There are a few good 
‘teleporter’ textures in the SpaceFX package - namely the ones with 
the names starting ‘Worm’. Select one of these and click ‘Use’ in the 
Properties window.

The marker may be too small - alter the Drawscale in Display to 
change this. 1.0 should be sufficient for most teleporters. Make sure 
the marker is in the right place (right on the teleporter) and 
rebuild and run again.