Things I wish I knew when I started mapping, and more... 1 - Autoplay.unr and Auto-saving 2 - Keep a clean install of UT/UT2003. 3 - Make a 'building room'. 4 - Use the middle dot of the grid to act as an anchor. 5 - Transform Permanently 6 - Using 'Brush Scaling' 7 - Using 'Vertex Editing' 8 - Using Intersect and De-Intersect 9 - Make Movers the right way... 10 - Tarquins Brushes 11 - Making Windows 12 - Make a room a zone 13 - When your Mover needs more than 7(+1) keys. 14 - Attaching things to movers 15 - Using the Mylevel Package. 16 - Using Texture Cull 17 - How to Hide Your Map 18 - Making Brushes snap where you want. 19 - Making pivots where you want. 20 - Working with Cylinders 21 - Using the Group browser. 22 - Triggers and Dispatchers <--- The fun Stuff! 23 - Pre-Made Custom Brushes 24 - Converting UnrealEd2 maps to UnrealEd3 1 - Every time you play the map you are working on, it saves a back-up copy called 'Autoplay.unr' in your maps directory. So, if for some reason UnrealEd crashes, if you haven't been saving your work, at least you have the version you last play tested. Open up Autoplay.unr, and save it under a new name. You can also use the auto save feature in UnrealEd. Menu > View > Advanced Options > Editor > Advanced. Set AutoSave to 'True'. You can also specify the time. Also, save different 'builds' of your map every once in a while under different names. Something like 'MyMap01.unr', MyMap02.unr' ect. You never know when a hidden BSP error can crop up, and you might need to trace back when it first appeared. You can then start pasting things in from later builds, and see what causes it. Applies to UnrealEd2 & 3. 2 - Keep a clean install of UT or UT2003. Install the game, apply the latest patch, download and install any official bonus packs. If you have the hard disk space, install it twice, using one for just the editing. This way you won't unknowingly use a custom texture. There's nothing worse than releasing a map, and having people say 'Your map won't open...' Use this with tip #15 Applies to UnrealEd2 & 3(UT2003). 3 - Make a 'building room'. Somewhere in the corner of the grid, make a big cube (4096x4096x4096) and Subtract. Use this room to make your brushes, and to do intersecting easily. Applies to UnrealEd2 & 3. 4 - Use the middle dot of the grid to act as an anchor. After you build a room, snap one of its corners to the centre dot. To do this without messing up the rest of your map, set the grid to 256, then highlight a brush and hold down Shift+A (Select All Actors). Now that all the brushes (and everything else) is highlighted, hold down the Ctrl button, and right click one of the rooms corner vertices (or even better, the centered yellow dot of the room) and drag it to the centre dot of the grid. If you're making a Capture the Flag level (that’s symmetrical) use the dot as the dead centre of the map. As your map gets more complex, having this anchor makes it way easier to paste in brushes, rotate the whole map to easier work on parts of it, and more... Applies to UnrealEd2 & 3. 5 - Transform Permanently Right click a brush and select 'Transform' > 'Transform Permanently' before you cut, stretch, shrink or rotate a brush. Sometimes you'll notice if you cut or split a brush, it doesn't cut along the line. Or if you rotate a brush (hold down Ctrl + Right Mouse Button while dragging the mouse) it might not keep its shape. This is because the engine still thinks the brush is in a shape it was previously. Transform Permanently tells the engine 'OK, this is now the correct shape of this brush'. Applies to UnrealEd2 & 3. 6 - Using 'Brush Scaling'. Click the Brush Scaling button, then select a brush you want to stretch or shrink. When you highlight any brush, a red '+' shows you the current selected vertice, though sometimes it's off the brush. Right click on a vertex to select it. Hold down Ctrl and right click a vertex to snap it to the grid. The brush will stretch/shrink, or rotate from this point. Think of it as the brushes anchor. If you hold down the Ctrl button and the left mouse button, you can drag your mouse left or right, up or down... it will stretch/shrink the highlighted brush while the Brush Scaling button is active. Click on the 'Camera Movement' button to return to regular editing. Applies to UnrealEd2 & 3. 7 - Using 'Vertex Editing'. Select a brush, and then click this button. It will make gray little boxes on the vertices of the highlighted brush. If you hold down Ctrl + Alt while dragging the mouse with the left mouse button held down, you will draw a box around the vertices of any brush. When you release the mouse button the vertices you enclosed in the box will turn white. You can now hold down Ctrl and move the mouse (with the left button pressed) dragging the vertices to wherever you want. Keep in mind you are really dragging pairs of vertices (one is underneath/behind the highlighted one. Applies to UnrealEd2 & 3. Note: In UnrealEd3, you can easily snap the selected vertexes to the grid by holding down Ctrl and right clicking on the grid. This is one on UnrealEd3's best features! See Tip #23 to get these brushes sent to you 8 - Use Intersect and De-Intersect for cleaner, and more complex brushes. You intersect for three reasons: a - To combine several brushes into one. b - To put a hole in something solid (an Added brush) c - To connect rooms (or Subtracted brushes) with each other. a - Lets say you made a tank out of several brushes (wheels, tread, body and turret) and want to turn it into a mover so you can drive around town. Movers can (usually) only be one brush, and must be intersected first. Move the tank to the middle of a Subtracted brush (a room, outdoors, or even better a 'building room'). Now make a cube big enough to surround it, but not so it comes into contact with any walls, floors or other brushes. Re-build Geometry, then click the Intersect button, and the brush should snap to the tanks shape (all of its brushes). Click the Add, Subtract, Add Special Brush, or Mover button and you have a new 'complex' brush. b - You want to make a hole in a wall, so it looks like a recessed shelf. Make a cube the shape you want, and slide it into the wall, but make sure it's not flush, but that a part of the red brush is sticking out into the room. Click the intersect button, and it should now snap flush to the wall. Now when you subtract, you know you have a clean brush aligned perfectly with the wall. No BSP errors here... c - You have two rooms 512 units apart, and need to make a hallway to connect them. Don't build a brush 512 units long and slide it into place... make it 560 units (so it overlaps both rooms) and intersect. Again, no potential BSP errors here. De-Intersecting. Lets say you want to make a cross. You've made the upright beam and Added it, so now make the horizontal beam with the building brush the correct size, and put it in place. You can't just hit the Add button, or you'd have solid going into solid. Instead, re-build geometry, and De-Intersect. The building brush will now fit around the first beam. Applies to UnrealEd2 & 3. Note: UnrealEd3 uses Static Meshes for Movers. 9 - Make Movers the right way... After you've intersected the brush that will be your mover... a - Transform > Transform Permanently b - Reset > Reset Scaling c - Polygons > To Brush d - Now you can click the mover button. If you ever find that you can walk/fall through your mover, do a Reset Scaling on it, and re-build. You may have to do this more than once. If there are invisible obstacles around your movers, bad news... you usually need to re-build your mover. It's a good practice to save the original brush(es) of your mover (in your building room) till you play test it. This is more common on complex movers. Applies to UnrealEd2. Note: UnrealEd3 uses static meshes for Movers. 10 - Tarquins Brushes http://www.planetunreal.com/fordy/taquinsbrushes.htm Very cool brushes to play with... Applies to UnrealEd2 & 3. There are now versions for both editors. 11 - Making Windows. Lets say you've made a hole (64x64x32.) in a wall between two rooms. Make a new brush 62x62x14, and align it so it is 1 unit away from each edge of the hole. Click the Add Special button, and select the prefab 'Invisible Collision Hull', but before you click O.K... untick 'Invisible', and tick off 'Transparent'. Select both sides, and add a glass texture. Select the four inside edges and in its properties change 'Transparent to 'Invisible' That's it... you now have a window that blocks players. You can also use this technique for masked textures like see-through grating on a catwalk. Applies to UnrealEd2 & 3. 12 - Make a room a zone. Lets say you have a room you need to zone off because it has unique properties (gravity, lighting, location name ect.) If the room has weird shaped windows, doors, and other openings that would be a pain to block off with sheets, simply right click the subtracted brush that is the room, and select Polygons > To brush. After the brush snaps to the room, you can... a - Turn it into a zone, playtest your level and see if it still looks OK. If not... b - Cut it so it is at least one unit from each surface (like the above window example) c - Vertex edit it so it is one unit from each surface d - Hit F4, and go into the building brush's Properties. Select Brush > MainScale > +Scale. When you click on the '+', you'll see settings for 'x', 'y', and 'z'. When a brush is created, these settings will each be '1'. To double the size of the brush, put a '2' in each field. Enter 0.5 to make it half the size. When you re-build (or Transform Permanently the brush, it will leave it in its new size, but reset the fields to '1'. In this example, enter something like .99 in each one. This will make the red brush slightly smaller than the room. Now click on Add Special Brush, and select 'Zone Portal' from the prefabs. Now the room is its own zone. Note: As a rule, the game engine prefers brushes that line up on the grid (even if its set to '1') and this last technique (changing the scale) usually won't leave you with a zone that’s lined up with the grid. It still seems to usually work, though... Applies to UnrealEd2 & 3 (I think... I haven't done much zoning in UrealEd3). 13 - When your Mover needs more than 7(+1) keys. http://utinsomniac.com/ut2k3/featured/monorail.html To long too put in here, the link to this tutorial includes a sample map. Applies to UnrealEd2 & 3. Note: although static meshes are used in UnrealEd3, the same principle can be applied 14 - Attaching things to movers. First, just use a regular mover... you don't need an attach mover. You want your tank to have a rocket launcher that goes along for the ride. Set the following properties of the rocket launcher... Advanced: bMoveable=True bStasis=True bStatic=False bTravel=True Movement: AttachTag=Tank Physics=PHYS_Falling Set the following property of your tank... Events: Tag=Tank Make sure the rocket launcher is a little above the surface of the tank. It needs to spawn, drop, and rest on top of the mover. Applies to UnrealEd2. Note: I haven't tried this in UnrealEd3. 15 - Using the Mylevel Package. Ever put out a map, only to find people say they can't open it? Or playing on-line, you get a 'Version Mismatch' error when a map loads... and the map used to load fine? When you download a map playing on-line, these files are stored in your cache dir. You can use a cache converter program, or manually re-name and move the files to the games directories so you can play these off-line. Just make a note (easier to do when you do this manually) that you don't overwrite any files with the same name. If you do, you might find you'll get an 'Mismatch' error when you load a map that used the original filename. The simple solution as a custom mapper is to use the MyLevel Package. This 'embeds' that custom texture right into your map, so it will not only always load correctly, but it won't cause an Epic, or another custom map not to load because you were dumb enough to enclose with your DM-City map a (new) City.utx file. Also, if I downloaded your map (and texture file) off the web, and you then put out a newer versions of your DM-City map (and have added new textures to your City.utx file), if I download it while playing it on-line... I will now get that error because the game will find, then try to load that incomplete texture I had saved to my Texture directory. FYI... Sometimes you can fix on-line Mismatch errors by deleting all the files in your cache directory. Although this problem can apply to more than just textures, 99% of the time it's a custom texture file that causes this problem. To embed a custom texture file into 'Mylevel'... a - In the texture browser, select File > Import, and browse for your picture. This pic must be sized by the power of 2, no larger than 1024x1024 (128x256, 256x256, 512x256 ect...), 256 colours (8bit) and be in a bmp or PCX format. b - In the box that pops open, type... Package: "MyLevel" (without the quotes), Group: you can leave this blank if you wish; it just acts as a category. Name: Give this a unique name not used by anything else in the level. This includes names for textures, sounds, scripts ect... c - Highlight this new texture in the texture browser, and apply it to a surface in your map. d - Now, save your map, but DO NOT save the MyLevel package in the texture browser. Though the file size of your map will be a larger, this is offset by the fact that you do no longer have to send an extra utx file. Your map will always work, and more importantly... you are not messing up someone else’s install of UT. Applies to UnrealEd2 & 3 16 - Using Texture Cull. O.K, so the texture you chose for your tank's turret was 'borrowed' from someone else’s map, and though you dutifully e-mailed them asking permission to use it, you just now got the reply from... their law firm. You change the turret to another texture and re-build, but later when you take the updated map over to a friend’s house, you get an error message.. 'Can't find file for Package 'TankTextures'. That's when you remember you used it elsewhere in your map, you think... The first thing to do (and you should do this before releasing a map) is run a texture cull. In the command bar at the bottom of UnrealEd, type in "texture cull" (without the quotes), then hit enter. Click the 'Show Full Log Window' button just to the right, and in the Log Window that pops open you get a list of textures used in your map. If any are 'culled', they will be listed at the bottom. What this means, is that the editor tries to keep track of all the textures you use, change, and delete while you map, but sometimes textures get left on this list even though they are no longer in your map. 'Culling' prunes away the unused textures still on the list. If TankTexture was culled, your map should now load fine. If however, you have a texture like this you can't hunt down and remove, here's a solution... a - Locate the texture in the Texture Browser, and highlight it. b - Right click on any surface in the 3D View (one that you can easily change back) and select 'Apply Texture: (the name of the texture you're hunting) c - If you have movers in your level, right click one and select 'Select All Mover'. Right click it again and select Movers > Show Polys. (so they are all visible... otherwise the next step won't catch them) d - Right click the surface you had changed in step 'b', and choose Select Surfaces > Matching Texture (Shift+T). If you right click it again, it will say beside 'Surface Properties' how many are selected. If it's more than one, you've found (and have currently highlighted) the matching texture. Pick another texture (I use the bright red Botpack > AmmoCount Junk) to make it easy to find where the spot was in case it's viewable, but if its a hidden surface (bottom of an added brush, Zone Portal texture ect... just change back the surface in step 'b'. Of coarse, if you were keeping track of the non-standard textures, or putting all of them into the 'Mylevel Package' this could have all been avoided. Applies to UnrealEd2 & 3(Note: UnrealEd3 uses Static Meshes for Movers). 17 - How to Hide Your Map This doesn't seem like a big deal, until you discover your map out there with someone else’s name on it. The worst part is the maps readme will now have his or her name on it, saying no one can use this map as a base for your level... This is one tip I hope most people won't use, as you can learn a lot from checking out other people’s maps in the editor to see how something was done. a - Just before you release your map, make a back-up copy of it. b - Right click a brush, and click 'Select all Brush'. c - Now just hit the delete key. Save the map (under the name you want to release it), but DON'T RE-BUILD it first. That’s it... Deleting and saving (but not re-building) causes all the geometry in your map to not appear in the editor. Before you do this, you could also make a texture that says 'Map by...' somewhere in a hard to find place. Lots of mappers do this anyways. Applies to UnrealEd2 & 3 18 - Making Brushes snap where you want. Sometimes you'll go to slide a brush you've created into place, only to have it refuse to dock in the correct spot on the grid. It's as though the editor will let you place it anywhere but the spot you want it to go to. Make a basic cube, and snap it (hold down Ctrl and left click) on its centre dot. Move the red brush close to the brush you want to align, and then select your stubborn brush. Make sure it is already snapped on the same gridline as where you want it to go. Now, with your stubborn brush still highlighted, hold down Ctrl and left click (snap) the dot of the red brush. You now have two brushes selected, and they both will move from the red brushes centre dot (pivot). Still holding down Ctrl, you can now move the red brush along the gridline, taking your stubborn brush with it, until it slides into place. Applies to UnrealEd2 & 3. Note: In UnrealEd3, you can easily snap the selected vertexes to the grid by holding down Ctrl and right clicking on the grid. 19 - Making pivots where you want. This has a lot of uses, but lets say you've made a window out of a cylinder, and now want to add a transparent collision hull to act as glass to block players. First, move the red brush exactly to the window by right clicking the subtracted window brush, and selecting Polygons > To Brush. The red brush will snap to the window brush. Now we need to clip the red brush by one unit on the inside of each vertex, much like the window in step #11. The problem with cylinders is that often the 8 (or however many sides it is) vertexes, or corners don't line up with the grid. Press Shift+A (you may need to select a brush first) to 'Select All Actors'. Everything in you map should now be highlighted. Snap one corner of the red brush to the grid (Ctrl+right click) and you'll see everything else move with it. Click the 'Brush Clipping' tool, and place the first clip marker (Ctrl+right click) one unit on the inside corner of an edge. With all the brushes (and the clip marker) highlighted, click the 'Camera Movement' button to return to regular editing. Go to the next corner vertex in the window, and snap it to the grid. Again, everything including the first clip marker comes along for the ride. Switch back to the Brush Clipping tool and add the second clip marker one unit just inside that corner. Click somewhere off the brushes (to de-select everything) and then click the red brush to highlight it. Making sure the 'tail' of the clip markers is pointed out away from the window, and click the "Clip Selected Brushes' button and make your cut. If it doesn't cut along the line, hit the back button (Ctrl+Z), and Transform Permanently the red brush, then try it again. The quickest way to do the rest is to a - Change back to camera movement, right click the first clip marker (make sure it's the only thing highlighted) and delete it. b - Shift+A again, then snap the next corner of the window to the grid. Now you just have to add one new clip marker one unit inside, and although its the third clip marker you've added, because you deleted one, the new clip marker will be '1'. After your done, set the grid to 256, Shift+A, and snap your map back to its original position by moving your maps anchor spot back to the centre dot. Your map will run fine no matter where you move it on the grid, but Movers hate to be rotated after you've set their keyframes. Applies to UnrealEd2 & 3 Note: In UnrealEd3, you can easily snap the selected vertexes to the grid by holding down Ctrl and right clicking on the grid. 20 - Working with Cylinders . Avoid clipping these if you can help it, as you sometimes get unwanted lines (and extra vertices) and it also mess up the texturing. Instead, use Vertex Edit, stretch/shink, or re-scale them instead. Use this technique to line both ends up to the grid if necessary, and don't forget to Transform Permanently it when it’s in place. Applies to UnrealEd2 & 3 21 - Using the Group browser. In a crowded map, it can be hard to see, or select a brush through all of your many brushes, triggers, lights ect. The Group Browser solves this. Highlight (Hold down Ctrl while you select) multiple brushes, maybe all the ones that make up a lower room. Click the 'Group Browser' button up top ('G') and select Edit > New. In the box that pops open, type 'Lower Room'. Note the two buttons in the group browser up on the right side. If 'Lower room' is highlighted in the box below, you can use this button to select everything in the group. This is also handy for lights. If you want to make all the lights in a room a little brighter, turn them into a group. Then click the 'Select Actors in Group' button so they all highlight, right click one light and when you change its properties, all the others change along with it. If you start working on a top room, and want to hide the lower room so it's easier to see what you're doing, open the Group browser, highlight 'Lower room’ and click the 'Select Actors in Group' button, then click the 'Hide Selected Actors' on the left toolbar of UnrealEd (the closed eye). The lower room will now be hidden. To bring it back, click the 'Show All Actors' button (the eye with an x). Applies to UnrealEd2 & 3 22 - Triggers and Dispatchers Using these, just about anything is possible... Lets say you want to be able to push a button that sounds an alarm, the ground shakes, there's an explosion outside a window that causes it to break, and then a helicopter lands on the roof waiting to take you to safety... Assuming you've built a room leading to outside, a window, stairs up to the roof and a helicopter you've turned into a mover... Making a button Make a small cylinder (12x12,16 sided) and place it into a wall at chest height (Use IntroDude-Step 2) You may have to rotate it in a side view first so its two faces line up with the wall. Subtract to make a nice hole and re-build Geometry. Now click the mover button, move the red brush out of the way (click a blank part of the grid, then Ctrl + drag the mouse), and select your mover. Left click its centre dot to set this as its pivot point (if it isn't already). Right click the mover and select Mover > Show polys. Apply a texture like the green Botpack > Ammocountbar. From the top view, right click it and select Movers > Key 1. Now rotate it 180 degrees so the green side now faces into the wall. Show polys again, and texture the other side with the red Botpack > AmmoCountJunk. Back in the top view right click the mover and select 'Movers > 'Key 0 (Base)' Open up its properties (F4 when its highlighted) and make the following changes... Events > Tag = Button Events > Event = CoolEffects Mover > MoverEncroachType = ME_IgnoreWhenEncroach Mover > MoveTime = 0 Object > TriggerOpenedTimed We now need a trigger to make the button work, so add one in (Actors > Triggers > +Trigger). Place the trigger on top of the button, and activate Radii View (right click the ViewPorts top toolbar and select Actors > Radii View). From the top view port, you'll see a red circle around the trigger. This represents the area a player must enter to activate it. We want the player to have to walk right up to it, so go into the triggers properties (F4) and open up 'Collision'. The CollisionHeight and CollisionRadius by default are set to 40. Change these both to '24'and make sure the red circle sticks out into the room in front of the button. We could have left the button to 'BumpOpenTimed', but triggers work well because they allow you more precision. Also in the triggers properties, set... Events > Event = Button Trigger > bTriggerOnlyOnce = True *Most actors like triggers and movers have a Tag (its name), and an Event (the name of another actor that is activated when this one is activated)* Now, when the button is activated, it will rotate around in '0' seconds (too fast to see), making it appear as though it just changed colour. Making the window If you made a window like in Tip #11, we need to turn the Glass brush (a transparent collision hull) into a mover. Drag it to your building room and intersect it, then click the mover button. Drag it back into the window, and change its following properties... Events > Tag = Window Mover > MoverEncroachType = ME_IgnoreWhenEncroach Mover > MoveTime = 0 Object > TriggerOpenedTimed Set this position as key1, then drag it somewhere off you map, and set this as Key 0 (base) Note: if you wanted, you could get fancy and have shards of glass fly everywhere into the room... just use the Clip tool and use the 'Split Selected Brushes' button to slice up your glass brush, turn each of them into movers, and then slide them assembled into the window frame instead. Then set all of them there as Key 1, then move them one at time to places in the room (rotating them as you do this looks good) and set the Key 0 (base). Just change the move time to '1' or '2', and set the StayOpenTime to a really long time, like 600 (six hours!). Making the Alarm There are ways of timing a looping sound, in this case we'll use a light (!). Add a TriggerLight (Actors > Light > TriggerLight to where you want the alarm to sound from. If you place it in the middle of your map, you can set its Sound > SoundRadius so it covers the whole map so everyone hears the alarm. Set its following properties... Events > Tag = Alarm LightColor > LightBrightness = 255 (This, along with its Sound > SoundVolume effects how loud it is) LightColor >LightHue = 0 LightColor >LightSaturation = 0 Lighting > LightRadius = 0 (so it shines no light) Sound > AmbientSound = Sound'AmbModern. Looping.alarm3’ Sound > SoundRadius = 200 * From the top view with Radii View on, the blue circle shows the area it can be heard. * Sound > SoundVolume - 255 * Like the LightBrightness, this controls how loud it is. * TriggerLight > bInitiallyOn = False You will notice you can hear it when you have the 'Realtime Preview' button selected, but it shouldn't sound in the game till it's triggered. Make sure you turn off 'Realtime Preview’ when you playtest your map from the editor. Making an Earthquake Add in an Earthquake (Actors > Keypoint > +Earthquake), and place it the room. Set the following properties... Earthquake > duration = 5 Earthquake > Magnitude = 200 Earthquake > Radius = 10000 (this should cover the whole map) Events > Tag = Quake Making the Explosion Add an ExplosionChain to your level (Actors > Effects > ExplosionChain), and place it in your map. Set the following properties... Effects > bOnlyTriggerable = True Effects > EffectSound1 = Sound'DDay.gunfire1' Events > Tag = Boom ExplosionChain > Damage = 25 (you don't want it to kill) ExplosionChain > DelayTime = 0.1 ExplosionChain > MomentumTransfer = 100000.0 (default) ExplosionChain > Size = 1000 Rescue Chopper Take your chopper (helicopter) mover (which should be just a regular mover, not an AttachMover) and place it above your level. Set this position as Key 1. Move the chopper down so it now enters your level. *Note - Where you set the keyframes impacts the speed of the chopper. If you Make Key 1 far away from Key 2, set Key 3 close by, then Key 4 far away... your chopper will zoom to Key 2, move slowly to Key 3, and zoom out to Key 4. Try to space them equally, unless this is what you intend* Each time you set a key frame, your mover will snap back to Key 1... making it hard to know where you set the last keyframe. So, before you set the chopper to Key 2, right click it and select 'Polygons > To Brush.' Now right click it again, and set Key 2. It will snap back, but the red brush shows you where Key 2 is. You could now drag the mover back so it lines up with the red brush sitting at key 2, but instead right click the chopper and select 'Polygons > From brush.' The chopper will snap back again exactly to key 2. Now drag both of these brushes to the next keyframe where you want the chopper to go, and right click and set Movers > Key 3. The chopper will snap back, the red brush stays, so right click the chopper again and 'Polygons > From Brush'. Continue repeating this, setting keys 4 - 6. Make key 7 so it’s just above the roof, facing the wrong way. Set this as key 7. Polygons From Brush the chopper again, and from the top view rotate it 180 degrees, then from the side view lower it so it sits on the roof. This is its last position, so set this as key 0 (Base). Set the choppers following properties... Events > Tag = Chopper Movement > AttachTag = ChopperGuide Mover > MoverEncroachType = ME_IgnoreWhenEncroach Mover > MoveTime = 5 Mover > NumKey = 8 (The indicates the number of keys your mover goes through (7 + the 0(Base) = 8 ) Mover > StayOpenTime = 600 Object > TriggerOpenedTimed Now to make the chopper fly away. For that, we need a MoverGuide. Make a small 8x8x8 cube, and press the mover button. Like the Button mover, you don't need to Intersect it, and Reset Scaling ect. first because you won't be traveling on it. Place this MoverGuide just on top, and centre of the chopper. Right click it, and select 'Movers > ShowPolys'. Select one of the surfaces, right click and pick 'Select Surfaces' > 'Matching Brush' (or Shift + B) to highlight all its surfaces. We don't care about the texture because it is going to be invisible. Hit F5 (Surface Properties) and on the Flags tab, make sure only 'Invisible' and 'Unlit' are ticked. Anytime you have a hidden brush in your level, tick of 'Unlit' as the game engine (I think) will otherwise attempt to calculate its lighting (even though its invisible). Just in case someone runs into it on the roof before the chopper lands, we need to re-set its 'Collision', so Open up the MoverGuides properties and set... Collision > bBlockActors = False Collision > bBlockPlayers = False Collision > bCollideActors = False Collision > bColideWorld = False Now it's not only invisible, but also completely non-solid. Still in its properties, set... Events > Tag = ChopperGuide Mover > MoverEncroachType = ME_IgnoreWhenEncroach Mover > MoveTime = 20 Mover > StayOpenTime = 100 Object > TriggerOpenedTimed Set this position on the roof as key 1, and set some keys so it flies to another part of the map. Remember, if you set Keys 1 to 4, then set the 0 (Base) key, put in a '5' in its Mover > NumKey field. If you used 6 keys + 0base, put in a 7 ect... Add in a Dispatcher (Actor > Triggers > Dispatcher). It doesn't matter where you place this in your level. Set the following Properties... Events > Tag = CoolEffects Open up 'Dispatcher', and expand (click the '+') both 'OutDelays' and 'OutEvents'. During game play, when a player hits the switch, it activates the trigger, which in turn activates the button. When the button is activated, it activates this Dispatcher First, we want the alarm to sound, so in line '[0]' of the OutEvent, type 'Alarm' (w/o the quotes) The dispatcher when activated looks in this first line, sees what it should activate, then looks it its matching OutDelay to see when to activate it. As we want the alarm to sound as soon as the button moves, leave line '[0]' at '0' Next comes the earthquake, but maybe 3 seconds after the alarm. Type in 'Quake' in line [1] of OutEvents, and '3'in line [1] of out delays. Just as the earthquake stops, we want the explosion, so type 'Boom' in line [2]. We set the duration of the quake to last 5 seconds, and we want the explosion to come at its end, so put a '5' in OutDelays at line [2]. Notice that the Dispatcher counts from 0 at the beginning of each line. Next the window breaks (or in the non-fancy map... disappears) so type 'Window in line [3]. As we want this to happen right at the explosion, leave the OutDelay of line [3] at '0'. Now for the helicopter... We want it to fly into the level a few seconds after the explosion, so type 'Chopper' at line [4], and '3' at its OutDelay. Now for some simple math.... Because the chopper moves through 7 keys (to key 2,3,4,5,6,7,0 Base), and we set its move time to '5' we know the chopper will land 35 seconds after its activated (7x5). Lets say you want the chopper to only wait on the roof for 10 seconds before it lifts off. In line [5] of OutEvents type 'ChopperGuide' In OutDelay put '45'. (35 seconds for the chopper to arrive, 10 seconds while it waits for you to climb on board). Even though the Stay open time of the chopper is 6 hours, if it is attached to another mover, it will follow it along. The Chopper will move along with the ChopperGuide, and because the ChopperGuides StayOpenTime is 1 hour, the chopper will sit where you made the ChopperGuide land for an hour. If you were bored and had time to kill… you would see the chopper fly back to the roof (backwards), sit there for about 5 hours, and then fly back up out of the level. Here’s a look at the Dispatchers OutEvent and OutDelays. OutDelays [0] > 0 [1] > 3 [2] > 5 [3] > 0 [4] > 3 [5] > 45 [6] > 0 [7] > 0 OutEvents [0] > Alarm [1] > Quake [2] > Boom [3] > Window [4] > Chopper [5] > ChopperGuide [6] > None [7] > None A last few notes... An actors Tag (or name) can be just about anything. Just make sure it is unique to activate just that trigger, mover ect. They can share the same name however. In the above example, if we set all the tags to 'Effects' or 'DontTouchThisButton' ect... all of them would have started at the same time. No need for a Dispatcher then. Dispatchers are handy when you want time delays between things. If you have more than 7 things you want to activate, add in another Dispatcher, and make number sevens OutEvent of the first Dispatcher the tag of your new one. Applies to UnrealEd2 23 - Custom Brushes E-mail me at WolfPitMaps@ltcos.com and I'll send you a set of brushes you can import into your map. These are both solid and hollow cylinders from 5 sided to 16 that have ALL of the vertices aligned to the grid. This will make creating a complex brush much easier to line up with the rest of your brushes. You can read more info here. Applies to UnrealEd2 & 3 24 - Converting UnrealEd2 maps to UnrealEd3 1. Open up UnreadEd2. 2. Right click a brush, and then select 'Select All Brush'. 3. Right click one of these (now highlighted) brushes and select 'Transform' > 'Transform Permenantly' 4. Re-Build Geometry 5. Repeat step 3... A redundant step, but it seems to help keep brushes aligned later. 6. Ctrl+C (Copy) 7. Open up UnrealEd3. (the rest of the steps are done in UnrealEd3) 8. Ctrl+V (Paste) 9. Re-build geometry This copies all the geometry over. To do the lights... 1. Open up UnreadEd2. 2. Right click a light, and then select 'Select All Lights'. 3. Ctrl+C (Copy) 4. Open up UnrealEd3, and Ctrl+V (Paste) Note: You will of coarse have to re-texture everything. Also, as UnreaEd3 uses static meshes for movers, not geometry, you'll still have to add those in.