HOME
MAPSMODSWIPTUTSLINKSBIO




UnrealEd 2.0 Mapping Basics

This tutorial aims at beginners who want to start mapping for Unreal Tournament GotY.
UnrealEd is a tool distributed with the Unreal game series and it's used to create levels for said games.

This is the offline version (all pages merged in one single page) of the tutorial that can be found here:

http://xyz8000.altervista.org/Ued2MappingBasics.html


In the following tutorial I will use these abbreviations:

PS: PlayerStart
RBB: Red Builder Brush, the red brush
RC: Right-Click
UEd: Unreal Editor 2.0


INDEX


 01. Starting up
 02. Brushes
 03. Textures
 04. Playerstarts
 05. Lights
 06. ReBuilding
 07. PlayTesting
 08. Inventory
 09. Skybox
 10. Meshes
 11. Pathing
 12. Level Info
 13. Music and Sounds
 14. ScreenShot
 15. Zones
 16. Movers
 17. Triggers
 18. Conclusion






UnrealEd 2.0 Mapping Basics - Starting Up

First, we want to start the program. The executable is located in the System folder of your Unreal Tournament install, and it's called " UnrealEd.exe ".

After opening up Ued, we will see 4 "windows" and lots of buttons on the bars at the left and the top. There should also be a browser window called "Textures" with some weird images inside, you can minimize that window for now. The 4 "windows" are called ViewPorts, and they shows the world of our level from the Top, Front, Side and in 3D Perspective.

The top bar contains the Ued operations relative to files: we have, in order:
- New, Open and Save
- Undo and Redo
- Search For Actors
- Browsers
- 2D Shape Editor and UnrealScript Editor
- Actor and Surface properities
- Rebuilds
- PlayTest the map

For now what interest us is the first group: New removes from the Ued the map that we were working on before and creates a new, empty, map. Unlike many programs, UnrealEd doesn't allow more maps open at the same time, so let's not forget to save before using that button.
Open is used to load a map, while Save is used to write the changes that you made to the map on the file. DO NOT USE SAVE while looking at someone else's map, use Save As (and change the filename) from the File menù if you really need to save the changes. If you overwrite the old file, when you will try to play online on said map you will get a "version mismatch" error and you will not be able to join the game.

Now let's try to move in the Viewports. Movement is all done with the mouse: Holding the left mouse button you will move in the X and Y axis of the current viewport, while holding both mouse buttons you will move on the Z axis of the viewport (so you will zoom in and out in the 2D viewports). In the 3D perspective ViewPort using the right mouse button you will rotate the cam.






UnrealEd 2.0 Mapping Basics - Brushes

So let's start creating a room. In the third group of icons in the bar on the left you can see several shapes, let's click on the cube [1.1]. A red
cube will appear in the 4 viewports. The red color indicates that it's a Red Builder Brush (from now on called RBB), a brush that's not real but
it's used as a "stamp": the form that our RBB has will be "impressed" (made real) into our map using the add and subtract functions.

BRUSHES

Probably you'd think that we want to use add, but instead the Unreal Engine differs from any other game engine: what we are seeing in our viewports is not a huge void space, but a huge full space. So to create our map we need to carve the space into the "full". It takes a while to get used to, but it gives a lot of advantages over having a void space.

Since the space is full, we need to start subtracting the space. Let's press the Subtract button [1.2] to see something happening in the viewports:
in the Perspective view we'll see a cube of cheese appearing (if we had the RBB in view), while in the 2D viewports we'll just see the RBB changing color. That's because the 2D viewports are WireFrame views (so you only see the borders of the surfaces), while the 3D viewport shows how the map will appear in-game.
Moving away the RBB in one of the 2D viewports (moving the mouse while holding Ctrl and the Left Mouse Button) we will see a yellow brush: yellow brushes are subtractions, blue brushes are additions.
If you tried to delete the yellow brush (Del key), you will see the cheese still showing up. Like the RBB, those yellow lines aren't real solids, but the Unreal Engine uses those lines to determine where the real surfaces will appear during the process of Rebuilding (explained later). So deleting a brush will affect the surfaces only when you will rebuild.
If you deleted your Yellow brush, do another subtraction somewhere.

If you want to modify the size of your brush, you can RC on the button that you used to create the cube [1.1].
Then a window will appear, and you will be able to change it's height, width and breadth. Click on Build to give to the RBB the desired shape.

Now we have a void room. If we want to add something inside it, we have to use the Add button. Let's try to create a RBB with width and breadth of 64 and to add it into our room pressing Add [1.3]






UnrealEd 2.0 Mapping Basics - Textures

The cubes we created before aren't very pretty. The "cheese" we have right now is the default texture that Ued applies to a surface when we don't have any texture selected. The textures are the images placed on the surfaces.

Remember when you minimized a window in the "Starting Up" part? Now it's time to maximize it, or if you closed it all you have to do is clicking on the Texture Browser button in the top bar [2.1]. The images that you're seeing are clearly not what you'd want in a map, they're textures used by the engine for in-game stuff (like the HUD).

Texture Browser

So let's load some better textures: click on the Open button in the texture browser [2.2] and in the window that will open up choose a package (for example Xtortion.utx) and click on Open to load them. New images will then appear in the browser.

Texture Browser

The browser separates the textures by Package (for example Xtortion) and Group (for example Base or Wall). Most of the packages have Groups that helps to find quickly a category of textures (for example, floor textures), but if you want to see all the textures in a package at once you can press the All button.

Now we need to apply the images on the surfaces. In the 3D viewport click on a surface to see many little light blue dots appearing all over it, that means that it's selected. If you want to select more than a surface at once, you can hold Ctrl and click on other surfaces to select or deselect them. After you're happy with your selection return in the texture browser and click on a texture that you like: the surfaces will change to the selected texture.






UnrealEd 2.0 Mapping Basics - PlayerStarts

Our little map isn't still playable: it's missing the Playerstarts, points that the Unreal Engine will use to spawn (and respawn) players.

We need to select the PlayerStart and to place it in the level: it's an Actor, an object used by the game to do some stuff while in game.
So we have to open the Actor Browser [3.1] and expand the class NavigationPoint clicking on the little + beside it. From this actor category we can click on PlayerStart to select it.

Actor Browser

Now that the PlayerStart is selected we can enter in the 3D viewports and RC on a surface (the floor, usually): from the drop-down menu that appears choose Add PlayerStart here to add our actor into the map (a little joystick).
We can add new Playerstarts using again this method (remember that the more playerstarts there are, the better), or we can duplicate the already created one: in the Top viewport we can click on the PlayerStart to see it changing color to green (that means that it's selected), and we can then press Ctrl and W to clone the actor. To move an actor after it has been selected you need to move the mouse while holding Ctrl and the Left Mouse Button.

You will notice a small red arrow in the 2D views, it's the Direction of the Playerstart. When a player respawns, he finds himself rotated in the direction of the arrow. Since many players (me included) always keep the Up arrow (or W) pressed when respawning to get into the action again faster
it's a good thing to make sure that the Playerstart is not facing any wall or obstacle. To rotate a Playerstart after selecting it you need to move the mouse while holding Ctrl and the Right Mouse Button in one of the 2D viewports.






UnrealEd 2.0 Mapping Basics - Lights

In the Brushes section of these tutorials you learnt that what seems like a perfectly void space is full; now it's time for some other news: what your are seeing currently in the ViewPort is completely dark, if you would enter the map right now you would see only black around you.

When you add or subtract some new brushes, UnrealEd renders their surfaces Unlit, so the lights doesn't affect them. After a compile lighting will however be calculated, so we need to add some light in our map.


To add a light, we need to RC on a surface and from the drop-down menu select Add Light Here.

A torch will then appear, and it will be the point from where the light will start.


The light will be white (not visible at the moment as the surfaces around are Unlit). To change color, we can select the torch and press F4 to open the Actor Properities (which you can open also double clicking on the actor). Expand the section LightColor and from there you will be able to change the Brightness, Hue and Saturation of the light with values between 0 and 255.

You can also change the radius of the light (how far the light will go - remember that lights are spherical) expanding the section Lighting and changing the parameter LightRadius.

You will have to wait a rebuild to see the effects of the light.






UnrealEd 2.0 Mapping Basics - Rebuilding

Now we have a very simple map. The last step to make it playable is Rebuilding it.

But first, let's save the map (File > Save or click on the little floppy in the top bar). The name that we choose will influence the gametype: maps with the DM prefix will be playable in DeathMatch, Team DeathMatch and Last Man Standing, the ones with the AS- prefix will be played in Assault, CTF- for Capture the Flag and DOM- for Domination.


As a general advice, save very often. Having Ued crashing isn't rare when you're still not very familiar with it.


At last, Rebuilding: to rebuild a map, all you need to do is click on the Full Rebuild icon in the top bar [5.1]. UnrealEd will then start reading all the data that we added in the map (brushes, lights, Playerstarts) and convert it into real, solid stuff.


Rebuilding


Since our map is extremely basic the rebuilding process will end almost immediately, but in the most complex maps the rebuilding process can last even hours (depending on the power of your PC).


I recommend saving BEFORE a Rebuild, as sometimes Ued can crash during a rebuild (it usually happens in very complex maps, but it's better to do an useless save than having to do again whole parts of a map because it crashed).






UnrealEd 2.0 Mapping Basics - PlayTesting

Now we have a fully working map... let's try it out. After saving it, click on the joystick-shaped Playtest button [6.1] in the top bar to start up Unreal Tournament with your map loaded.

You will be able to play DeathMatch in it, but of course we need to add much, much more stuff to make it a finished product.


PlayTesting

Sometimes UT might not work perfectly when started up from the editor with the Playtest button. You can as well start your Unreal Tournament game as you do usually (from a link on the desktop or whatever) and during the flyby open the console (tilde key) and type "Open [MapName]" replacing [MapName] with the filename of your map (for example DM-MyLittleCubeOfBoredom).






UnrealEd 2.0 Mapping Basics - Inventory

Before starting to add items and such, it's probably better to expand a bit our map. We can start subtracting and adding some more cubes around, using our creativity. One important thing about brushes is that it's better to give them sizes at least multiples of 2. The grid that you see in UnrealEd (if you didn't change it) is 16uu wide, that means that a brush's size has to be a multiple of 16 to fit on it (for example 32, 96, 256, etc.). Keeping brushes on the grid will help preventing BSP errors (errors that happens on surfaces) and they are generally better, so try to stick to powers of 2 (like 32, 64, 128, 256, 512, 1024) for sizes of the brushes.


When we're done subtracting, adding, rebuilding etc. we can start adding a weapon.


Enter in the Actor Browser (explained in 05. PlayerStarts if you already forgot it), expand Inventory (all the objects that can be picked up in the game, like weapons, health and power ups), expand Weapons (Unreal weapons, use the UT counterparts instead of these), expand TournamentWeapons (Unreal Tournament weapons) and then select a weapon. For example select UT_FlakCannon.

Return to the 3D viewport, RC on a surface and from the drop-down menu choose "Add UT_FlakCannon here". A shiny Flak Cannon will then appear in our map.


As you probably noticed, in the drop-down menu that appears when you right-click something there's always a "Add Light here", while under that option there's an "Add ... Here" that changes according to the actor currently selected in the Actor Browser.


After Adding the weapon, Rebuild the map before trying out the map.


Other pickups are added in a similar way: you have to follow the path Inventory > Pickup > TournamentHealth for the health packs, Inventory > Pickup > tournamentPickup for the Power Ups, Inventory > Pickup > Ammo > TournamentAmmo for the ammunitions. Add them to the map with the usual "Add ... Here", and you can eventually duplicate them if you wish (Ctrl + W).






UnrealEd 2.0 Mapping Basics - SkyBox

A SkyBox is the "sky" of the map. Rather than placing sky textures on big cubes subtracted on our map, we can use this feature of the Unreal Engine to give a realistic movement sensation from the sky in the map.


To create a SkyBox we have to subtract a cube (or whatever we want) far from our main map (it's important that our cube just subtracted don't touch the rest of the map) and apply to it some textures fitting for a sky (try to look at GenFluid.utx). Add also a light in there.


Then open the Actor Browser and select SkyZoneInfo in Info > ZoneInfo. Add said actor in the cube (NOT in the main part or the map or in the "full" surrounding it) and move it to the center of the cube. The position of the SkyZoneInfo actor will determine the point of view of the sky from the rest of the map.


Our SkyBox is ready, now we have to tell to the engine where the sky should be visible. Return in the main part of the map and select the surfaces where you want the sky to appear (like the ceiling of the rooms).

Then enter the Surface properities pressing the F5 key (or Right-Clicking on a surface and choosing Surface Properities from the drop-down menu) and tick the "Fake BackDrop" checkbox: those surfaces will disappear and show the sky while in-game. You can try to save, rebuild, save and try the map to get an idea of how it will be shown.

If you want to see the sky in the editor, you just need to enter in the RealTime preview mode (clicking on the joystick on the bar of the viewport [8.1]).


SkyBox


Probably our sky isn't very interesting right now, a cube with some weird static sky textures on it.

Generally only the top surface of the SkyBox will be shown (if you use only ceilings as Fake BackDrop surfaces), so you may want to pretty it up a bit.


First let's make sure that the side surfaces of our SkyBox will not be seen, to do that you can just create a cube with big width and breadth while having small height, rather than using a 256x256x256 cube (try with a 256 height - 4096 width - 4096 breadth cube).


Then we can add another layer of clouds, adding a sheet (the button on the right of the Cube button) with the same width and breadth of our cube right below our top surface. Then we can make it "transparent" entering in the Surface properities of if and ticking the "Translucent" box.

You can also make a moving sky ticking UPan and VPan.

You may also want to add a sheet with a sun on it, using textures from the GenFX.utx package.


If the Sky texture is too small and repetitive, you can scale it up switching Tab in the Surface Properities Window from Flags to Alignment: there you will find anything you'll need to scale and move a texture, try for example to choose 4.0 in the "Simple:" box and click Apply to see your texture scaled 4x.


I recommend checking out how the skyboxes in Epic retail maps are done to understand better how to make a good-looking skybox.






UnrealEd 2.0 Mapping Basics - Meshes

Meshes are prefab decorations created with external modeling programs. When placed in maps they don't have any effect on the BSP (the geometry of the map) and they are pretty cheap resource-wise, but the lighting on them is pretty basic (vertex lighting, and they don't cast shadows) and their collision is always a cylinder (unlike BSP, which has collision set by it's surfaces).


A mesh is an actor, so you can place on exactly like you did for inventory and such. Enter in the Actor Browser, expand the Decoration category and from there select an object (for example Table). Go to the 3D ViewPort, right click on a surface and choose "Add [MeshName] Here".

There are many meshes fitting many themes, try out a few (all located under Decoration).


As I said before all of them have cylindrical collision. To see the collision cylinder you can RC on the ViewPort's bar and choose Actors > Radii View: the collision of the selected actor will appear in the viewport.


Meshes


If you want to change the size of the mesh, you can enter in it's Actor properities (F4 or double-clicking it) and after expanding the Display category change the DrawScale value (1.0 is the base size). The collision radius will be adjusted accordingly.






UnrealEd 2.0 Mapping Basics - Pathing

Probably you've already tried to play your map with some bots: you should have then noticed that the bots stay near the playerstarts and move around only if they see an enemy. That's caused from the absince of paths, the instructions for the bots.


To manage the bots the Unreal Engine uses a "web" of links between the various objects: every bot, basing on its actual situation, finds in the "web" the shortest way to reach its objective.


To give instructions to bots it's then necessary to create links between the objects. To create these links it's enough to add "nodes" in the middle, called PathNodes: they're Actors that the Unreal Engine will use during the map rebuild to create the "web" and so to create the instructions for the bots.


The links (paths) can be there between every path-generating object (every Actor in the classes Inventory, NavigationPoint and PickUp). They can have two colors (blue indicates a "sane" path, while red indicates a broken path that will generally be used only if there aren't blue paths to reach the objective) and their max lenght is 896uu.


Let's then try to link some objects: for example add a PathNode (you can find this Actor in the NavigationPoint class) between a Playerstart and an Armor far from each other more than 1024uu. After compiling the map, bots will be able to reach the Armor from that Playerstart since they now see a link to it.

Basically you need to add pathnodes in the map to link all the objects together. You DO NOT need to add a PathNode above Actors like Playerstarts, weapons and such as they already create paths around them.


To check the "web" of links in your map you just need to RC on the bar of any viewport (preferably the 3D viewport) and from the drop-down menu choose View > Show Paths. In the map the links between the various objects will appear.


Paths


Paths are "sane" when there's enough space around them. There has to be a space of 64uu around the path for it to be considered sane. If there's some obstacle (geometry) in the way the path will become red, meaning that bots will not use it very often.

The paths are created and updated only during a Rebuild.


As usual, try to look at other maps to see how pathing should be done (not every map is a great example though). There are several other actors that allows map makers to give more complex instructions to bots, but those will be covered in a separate tutorial.


While pathing a map you might want to not rebuild fully your map... why rebuild everything to check the effect of a few added pathnodes?

Luckily Ued has "partial" rebuilds, which allows mappers to rebuild only parts of their maps. To rebuild only paths use the button on the left side of the Rebuild All button to rebuild only paths.

Use the Rebuild All when you made some changes on the Geometry or Lighting.






UnrealEd 2.0 Mapping Basics - LevelInfo

Now we can give a name to our map, which will be shown in the game, and provide some other useful information.


Pressing F6 in Ued (click somewhere in a viewport if nothing happens before pressing F6 again) we will access to LevelInfo, an actor already added in the map (Ued creates one in every new map) that contains some information about our level.


After expanding the LevelInfo category in the properities (the window is similar to the Actor Properities), we can change the values of some of the fields.


Author is the name of the map author, generally your nickname.

DefaultGameType is the default game type (duh) that will be used when you start a map without forcing a gametype (for example, opening a map from the console).

You can't just write DeathMatch or Capture the Flag, you have to use the exact name of their classes: DeathMatchPlus (DeathMatch), CTFGame (Capture The Flag), LastManStanding (Last Man Standing), Assault (Assault), Domination (Domination).

IdealPlayerCount is the recommended Player Count for the map. Some mods use this information to guess the number of bots to add to a game, so don't forget to fill this field correctly (for example "2 - 4").

Screenshot is the preview image that will be shown in the Pratice Session menu. More on this later... for now leave it void.

Title is the title of the map.


In the Start Pratice menu you will see the Screenshot of the map, with written on it the Title, the Author name and the IdealPlayerCount.






UnrealEd 2.0 Mapping Basics - Music and Sounds

Now we'll add a music to our map. Let's open the Music Browser [12.1] and using the Open button load a music (for example, FireBR.umx).


MusicBrowser


We can listen to a preview of the music using the Play and Stop buttons in the browser.


To add the music to the level we just have to enter in the Level Info (F6) and, after expanding the audio category, click on the Use button in the Song field to set the music.

Pressing the Use button will add the filename and name of the song that you have selected in the Music Browser to our level.


Now we can add some sounds to our level, called Ambient Sounds, that will always play in the background but only in some places of a map (for example the sound produced by waterfalls, engines, etc.). The position of these sounds is determined by the addition of some Actors, called


AmbientSound, that will set the source of the sound.

Open then the Actor Browser, expand KeyPoint and select AmbientSound. Add it somewhere in your map, then enter in its Actor Properities (F4).

Under the Sounds category we can set the Volume, the Radius and the Pitch of our sound, with values between 0 and 255.

To choose the sound to give to the source (AmbientSound actor) open the Sound Browser [12.2], open a sound package with the Open button (for example AmbModern) and after selecting a sound (of which you can hear a preview, like the musics) return in the Actor Properities of the AmbientSound and click on the Use button in the AmbientSound field.


You can hear all the sounds you placed in your map in the 3D viewport when you're in RealTime mode (see 09. SkyBox if you don't remember how to enter it).






UnrealEd 2.0 Mapping Basics - Screenshot

As previously said, the ScreenShot is the preview image shown in the Pratice Session menu while you're choosing a map to play on.


First of all we need to capture an image of our map. We want a 256x256 or 512x512 picture of our map (better 256x256), to get one I use a quite strange but effective method:


- Start up your map. DO NOT give the ready signal (clicking the Fire button, usually the mouse)


- Reduce your UT to a window


- Open the console and type "setres 256x256" (It will resize the window to the optimal size for taking screenshots)


- Type in the console "Slomo 2.5" (the game speed will increase)


- The text at the center of the screen should start blinking, in case you still have some stuff on your screen (like the Flags with score if it's a CTF game) you can disable the HUD from the Preferences.


- While the text is not on the screen (during the blinking) press F9 to capture a screenshot of your map.


With this procedure we just took a 256x256 image of our map, with no HUD or other clutter in it.

If you're too slow to press F9 during the blinking, you can enter in the game (giving the ready signal) and then kill all the bots and inventory (type "killall bot" and "killall inventory" in the console) and then remove your crosshair and HUD.


After getting a decent shot of your map, close UT and enter in the System folder of your Unreal Tournament installation. Open the last ShotXXXX.bmp (where XXXX is a number between 0000 and 0255) in a graphic program (I recommend GIMP, a free and extremely powerful program, or if you need something simpler you can take IrfanView).

It's necessary to reduce the colors of the image to 256 (UT doesn't allow images with more than 8-bit, so with more than that number of colors) and if the image is too bright you can change the Brighness and Contrast.

After fixing this stuff up, save the image as a .PCX file (for example "MyLittleScreenshot.pcx).


Open UnrealEd, open the Texture Browser and click on File. From the drop-down menu choose Import: browse in your PC to select the .pcx image that you saved before.


After choosing the image a window will appear, write "MyLevel" as Package (I mean to really write the word "MyLevel", not to write the name of your map) and "Screenshot" as name. You can write whatever you want in Group, I'd call it ScreenShots.


MyLevel is a particular package: it's not a file external to the map, but every object included in the MyLevel package is included in the map file itself (in the .unr file), with the obvious advantage of having every onject included in one file. NEVER (and I mean NEVER) use the Save button of the Texture Browser while having the MyLevel selected, thus saving the MyLevel package: this can create a lot of more or less exotic troubles that you don't want to deal with.


You can use this import process to import other textures in your map: I recommend to always use MyLevel as Package to avoid to have to include tons of files to make a map work. So keep "MyLevel" as Package, write something in the "Group" (for example Wall if you're importing a texture with bricks...) and give a name that you like to the texture (of course avoid calling it ScreenShot, or it will overwrite the previous texture).

Textures can be square or rectangular, but they must always be powers of 2 in size (2, 4, 8, 16, 32, 64, 128, 256, 512, etc.). It's recommended to not go above 512x512, and remember to always leave checked the Generate MipMaps box in the import dialog.


Last note about MyLevel, it will be saved automatically when you save your map file but remember that the objects not used (for example a tiles textures that you imported but not yet used) will be flushed out of MyLevel when you close Ued, so apply them somewhere to make Ued "remember" them.


Now we have to link the Screenshot image to our level... enter in the LevelInfo (F6), expand "LevelInfo", in the Screenshot field write "Screenshot" and press Enter. Your map now has that image as a preview image.


The screenshot is the first impact of a player with your map, so it's better to make it as good as you can. Take the screenshot image from a nice view where you can see the "core" of your map, and it's better to show the best-looking part of your level.






UnrealEd 2.0 Mapping Basics - Zones

Now we want to create a small zone with water in our level, for example a small pool.

Subtract a space 128x256x256uu space in a floor where you want the pool. We want to "separate" a part of that subtraction and tell to the Ued to change the properities of the bottom part. To divide a level in zones we will use Zone Portals, sheets with altered properities.
Add then a 256x256uu sheet (with a texture from GenFluid.utx, HubEffects.utx or Liquids.utx) where you want the water level to be, RC on it and tick the Portal property in the Surface Properities. The sheet, after a Rebuild, will act as a divider between zones.
Make sure that the sheet covers the whole "hole", so that there aren't leaks between the zones.

After the Rebuild entering in the Zoned view [14.1] you should see the bottom part (under the Zone Portal) of our subtracted cube has changed color (for example the rest of the map is blue while the zone under the sheet is green - don't count slight blue variations as different colors), if it didn't check that Portal is checked and make sure that there aren't leaks.

Zones

Now we can change the properities of the zone under the sheet: open the Actor Browser, select WaterZone under Info > ZoneInfo and then add it in the pool (under the sheet, of course!). Rebuild again and your little pool will be full of water.
You probably already guessed why it's so important to make sure that the zone isn't leaking... if the Zone Portal wasn't placed correctly, our entire level would be flooded with water right now.

If we wanted to add Lava instead of water (after changing the sheet texture, please :P), the mechanism is the same but instead of adding a WaterZone we'd have to add a LavaZone. SlimeZone is for a nice acid pool, NitrogenZone is a zone full of Nitrogen, etc.

Aside creating special zones such as water pools, we can separate the level in several "normal" zones to add some useful informations to parts of the level. For example LocationString is the "name" of the zone, it will be shown during team games so you will know where your teammates will be.

ZoneLight is a base brigthness given to the map, independently from lights. Under the ZoneLight tab you can also change the UPan and VPan speed (the speed at which the textures will pan if you ticked the UPan or VPan boxes in their surface properities).
The actor to add in these "normal" zones is ZoneInfo. Also the LevelInfo is a ZoneInfo, so if you wish you can set the properities to the whole level (ZoneInfo actors will override the LevelInfo settings though).
A level can contain 64 zones at max, after that limit Ued will start to merge randomly zones.






UnrealEd 2.0 Mapping Basics - Movers

Movers are, as the name suggests, geometry pieces that can move: lifts, doors, crushers are all movers. There are tons of Mover combinations, so we'll only see how to create a Lift and a Door.


Movers are shown as purple brushes. To add one you just need to create your desired shape with the RBB and then press the key Add Mover. The purple brush will be added.

Now we need to define the path that it will follow (its movement), using KeyPoints. Place the Mover where you want it to be when "closed" (when it has yet to be activated), RC on it, click on Movers and choose Key1; afterwards move it to a higher position (or wherever you want your lift to go) and when you're satisfied with its position RC it, click on Movers and choose Key0. Key1 is the starting point of the Mover, Key0 is its final position. If you want to create a lift with a more complex path you have to use other keys between Key1 and Key0, for example (if the lift has 4 positions) Key1, Key2, Key3, Key0.


Now we can change some settings. Entering in the Actor Properities and expanding the Mover category we can change the StayOpenTime (the time that the Mover will stay open before returning to its Key1), MoveTime (how much time the Mover will take to move between the Keys), MoverEncroachType (what the Mover will do when a player will be "crushed", NEVER use ME_StopwhenEncroach in multiplayer maps) and TriggerOnceOnly (if True, the Mover will stop forever after reaching the Key0, don't use this for stuff like doors or lifts).

Under the MoverSounds category we can set some sounds to our Mover like if it would be an AmbientSound, although we will not be able to change the radius, pitch and volume of the sounds.

Under the Objects group we can change the InitialState. If our mover is a lift we need to set it on StandOpenTimed (the Mover will start only when a player will touch it's upper surface).

Now you can start the game and try out your newly added lift. If you see a bunch of cheese (the Ued's Default texture) instead of a proper lift it means that you didn't set textures to its surfaces. You can solve that simply right-clicking the Mover in the editor and selecting Movers > Show Polys. This will make the Mover's surfaces visible, although this function can be pretty buggy sometimes.

It's better to add a Mover with a RBB that already has the textures set. You can do that simply right-clicking an existing brush and selecting Polygons > To Brush, which will basically give that brush's shape and textures to the RBB. Then you can happily add your Mover without seeing having to deal with textures.

When you add a lift or another Mover for other purpose you have to keep in mind that it has to be comfortable to use and not annoying. So avoid lifts that stay open forever (a StayOpenTime below 1.5 is enough for most of the lifts, and the MoveTime shouldn't be too long either) or that kill players who are trying to ride on it (use ME_CrushWhenEncroach only for traps).






UnrealEd 2.0 Mapping Basics - Triggers

Now we're going to create a door - to do that we will create a Mover and we will use a Trigger to activate it.


After creating another mover and setting up its movement using the previously explained method we will have to change some properities. Since we want a door (you can of course add two movers that open in opposite directions or even more complex doors with several pieces that slide in different directions) we have to make it open before a player touches it (otherwise it will break the flow), so we have to change the InitialState to either TriggerControl or TriggerOpenTimed.


Now we have to add another actor, a Trigger. You can find it in the Actor Browser under the Triggers category. It's better to add in in the middle of the door (at floor

level), or in the middle of the doorframe if we have more movers.

A Trigger is an object that generates an Event (activates something) when something (generally a player) enters in its radius. We will set up the door to open when a

player enters in the Trigger's radius.


We can change the Trigger's radius altering the parameters CollisionHeight and CollisionRadius in its Actor properities, under Collision (pretty much self-explaining). You

can check the radius in the viewports with the Actor > Radii View mentioned before.

Let's also give an Event to the Trigger, which is basically what will happen when a player will step inside the TriggerRadius. To do so you just have to write something

(for example "MyLittlePrettyDoor") instead of None in the Event field under Events.


Now we have to link the Trigger to our door(s), so enter the Actor Properities of the Mover and write the name chosen before for the Trigger's Event (in this case

"MyLittlePrettyDoor") into the Tag field under Events. A red line will appear between the two objects, confirming you that they're linked. The red line is visible only in

the 2D viewports and in Wireframe mode.


Now when someone will step in the Trigger all the objects with the chosen Tag (in this case "MyLittlePrettyDoor") will be activated. If we had a door with multiple pieces

(multiple movers sliding in different directions) we will of course have to assign the same Tag to all these Movers. And of course if you plan to have more than one door

in your map you have to use different Events, otherwise when you will touch one Trigger all the doors of the level will open at the same time.


Maybe you're wondering what's the difference between TriggerOpenTimed and TriggerControl (the InitialState of the movers): choosing TriggenOpenTimed will make your door open, then it will stay open for the whole StayOpenTime that you set in the Mover properities and then it will close, ignoring players. With TriggerControl instead the Mover will ignore the StayOpenTime and will always stay open while there is a player in the Trigger's radius.

Usually it's better to use a TriggerControl, since a door will almost never close while you're trying to pass under it (it still can screw up sometimes when there are

multiple players in the area).


Try to place the Trigger carefully - it should allow players to travel comfortably through the door from every location without bumping in it. It's also better to always

set a ReTriggerDelay of 0.1 or less in the Trigger properities (under Trigger), so if a door will close in front of a player who was trying to go through it the trigger

will restart almost immediately (without ReTriggerDelay the player would have to exit the trigger radius and re-enter it to activate it).

There are many possible settings for Movers and Triggers - try to play around with them and you should get the hang of Movers pretty quickly. The Event and Tag options are available for every actor, but they act differently (most of the actors do nothing when triggered). Experimenting is the best way to learn, although it takes time.






UnrealEd 2.0 Mapping Basics - Conclusion

Now you should have a knowledge of most of the basics of UnrealEd. There's much more stuff to learn, but covering every single Ued function would require a titanic tutorial.


Full knowledge will come with time, experimentation and patience. Try out as much stuff as you can, and look at other maps to see how they're made (without stealing/ripping anything though). And don't forget to save often while you're experimenting new stuff (doing also backups pretty often - when you change something major in a map don't rely only on the Undo function, since it's all but stable and reliable).


After you created a map that seems complete enough, try submitting it to some Unreal website (UnrealPlayGround has a nice Beta Testing map upload function, but you can also post a link to the map on the forums of sites like NaliCity and BeyondUnreal). Probably your map will not be very good and the feedback that you will hear will rarely be positive, but don't get discouraged and keep on mapping trying to improve your map following the suggestions. Keep an open mind and don't think that your map is the best map on Earth, because it will never be such.

If you will keep listening to advices you will be a good mapper in no time.


Good luck!


Copyright 2008 by XYZ8000

Don't upload this tutorial anywhere else