Unreal
Zora's World
Custom maps and mods Contact Zora

Zora's Editing Tips and Tricks

How to convert a map from 226f to 225f
Musicorder (Songsection) speed problems
How to fix BSP errors
How to avoid BSP problems
Import / Export
Intersect / Deintersect
Vertex Editing
Water, Lava, etc.
Unreal Editor Crashes
Movers
Using mouse with Windows XP
UnrealEd hangs up before creating viewports

Tip: How to convert a map from 226f to 225f
Why: A map built with a 226f unrealed can't be played by a 225f Unreal because 226f saves a LevelSummary automatically and this doesn't exist in 225f.
How:
  1. Load the map into a binary editor
  2. Replace the string 'LevelSummary' by 'SpecialEvent'
  3. Save it
  4. (optional) Load the map into the 225f unrealed
  5. (optional) Save it
Or just use Winged Unicorn's tool, which does exactly that:
MapConverter.zip (md5: fd16ae46710bef032c22c89d36fae4e8)
Remark: I used 'SpecialEvent' because it has 12 characters too and it is within the engine.u package too.
On load the 225f game/unrealed will delete this 'SpecialEvent' because of unknown object properties like 'Summary' (see log file when loaded).

Tip: Musicorder (Songsection) speed problems
Why: When resizing the screen (e.g. changing full screen via F12) sometimes the music is way too slow (e.g. in NaliBoat (Serpent Canyon) when you press F12 while the second song section is playing). This occurs when a song isn't played from the beginning, but from another entry (i.e. MusicEvent.SongSection != 0). The unreal music engine reloads the song (when pressing F12) and resets the song speed to 120 bpm (and not to the one given at the general song properties).
How:
  1. Load the song into any music tracker program (I use the free ModPlug).
  2. Go to the song position where you set alternate start points in MusicEvent (usually position 1 and 2, but don't mix up pattern number and song position!).
  3. Enter the same speed as given in the general song infos. For some tracker file formats there are two ways to set the speed: by bpm (= beats per minute) and by frames per row. You have to enter both, thus you have to use two channels. E.g. the .xm format has effects F00...F1F for 0...31 frames per row and F20...FFF for 32...255 beats per minute. For the .s3m format the effect is named Sxx (speed). The .it format has only Txx (tempo).
  4. Save the song.
  5. Import it to unreal editor and save it as package.

Tip: How to fix BSP errors
Why: BSP (binary space partition, the way unreal decides where space and where solid is) may go too complex in areas with too many and/or too complex brushes. In the rebuild menu / BSP you have option 'optimize geometry'. So, when the BSP goes too complex the geometry (visibility) is influenced as well, often leading to HOMs (hall of mirror).
How:
  1. Try to simplify the brushes in the area (if it's acceptable in your level design).
  2. Try to divide the area into several zones by using zone portals.
  3. Use semisolids for decorational brushes.
  4. Change the optimization options in the rebuild menu to 'Optimal' and lower the 'Minimize Cuts' to 10, 5 or 0.
Remark: Anyway, it's a good idea to make copies of your maps every now and then, especially before changing many brushes and/or the rebuild options.
Copy the files into a different folder and rename it to get a history.

Tip: How to avoid BSP problems
Why: During design of your map take care of the brush complexity.
How:
  1. Avoid acute angles.
  2. Snap all vertices, take care of the grid.
  3. Don't intersect zone portals.
  4. Don't use translucent or invisible surfaces with zone portals.
  5. Warp zone portals need to have the same panning.
  6. The rotation/transformation of the warp zone portals decide the direction of sight. Don't rotate one and not the other. This will mean: see myself, the result is a HOM.

Tip: Import / Export
Why: Copy brushes from one map into another.
How:
  1. Copying brushes is easy by using CTRL-C nad CTRL-V or via menu: BrushExport and BrushImport.
  2. When you've started two unrealeds assure the textures are loaded into the destination unrealed by loading the source map first or by loading all needed texture packages (same for Sounds, Music and Classes).
  3. At import of a brush mark the option 'keep original polygons intact' otherwise all coplanar surfaces will be put together to one polygone loosing specific pannings, rotations and textures.
  4. Importing a whole map isn't recommended: You don't have a 'keep original polygons intact' option, so all coplanar surfaces will put together.
  5. Don't copy and paste the red builder brush: in the destination map you'll get geometry errors.

Tip: Intersect / Deintersect
Why: Build a complex brush which may be saved as a template. A complex brush sometimes need less memory and less CPU time during game play (= higher frame rate).
How:
  1. When intersecting or deintersecting you loose the solid / semi-solid or non-solid information. All source brushes are put together and the resulting brush may only have one solidity information.
  2. Often a complex brush has less polygons than the original brushes together. But sometimes not, especially when there are many odd angles. Then better have many simple brushes.
  3. When you deleted a brush then first rebuild the geometry before intersecting / deintersecting again.
  4. Vertex snapping neither work when geometry isn't rebuild after deletion of brushes nor when you added a brush in a solid area or subtracted a brush in an empty area.

Tip: Vertex Editing
Why: A great tool is the vertex editing. You can use it in any view. But there are some things to consider.
How:
  1. High-light the brush you want to modify. Then left-click the vertex you want to move. Hold ALT and move with: both mouse keys in 3d view, left mouse key in 2d view.
  2. All surfaces using this vertex must result in plane surfaces after moving of vertices is finished. The most simple way is to move vertices of triangles only (use the floor lofter to build a floor consisting of triangles only).
  3. Even when you move vertices of triangles, note that the brush may have put coplanar surfaces together (see Import / Export for discussion). This may be verified by clicking only one surface. When more surfaces are marked then: don't move a vertex of any of these surfaces.

Tip: Water, Lava, etc.
Why: Water, lava, etc. is easy to use but there are some tricks.
How:
  1. Any property you marked in the 'Insert special brush' menu can't be deselected in the 'surface properties' menu (e.g. 2-sided, Translucent).
  2. When the air above the translucent water surface goes lower than the water surface (e.g. when there's a stairway down beyond the pool) you can see through the translucent water down to the lower air area (as at the end of 'Ceremonial Chambers'). To prevent this insert a horizontal zone portal at the place where the air goes lower than the translucent water surface (at the same height as the water surface) or change the water surface to non-translucent (at inserting the special brush, see a).

Tip: Unreal Editor Crashes
Why: The Unreal Editor is a great editor, but sometimes it crashes.
How:
  1. I recognized the editor often crashes when selecting actor by actor and changing the Filter options.
  2. Editor crashes immediately on startup: Start the editor without a map first, then change the dynamic lighting / textures view to 'overhead' and at least load the map.
  3. Editor crashes when resizing a viewport: Change the dynamic lighting / textures view to 'overhead' first.
  4. Editor crashes when loading another map just to see how something is done there: Use File, New first (clears all viewports, gains memory space), then load the desired map.

Tip: Movers
Why: Movers divide the area into small handy sub-areas.
How:
  1. Don't use scaled brushes for movers
  2. When the mover is a door: place a zone portal in the middle of the mover: It can't be seen when the door is closed, so nothing of the other zone can be seen (higher frame rate).
  3. When you forgot to set some surface properties of the mover: Use copy polygons to brush, add it somewhere in the free space, fix the properties, intersect and then add the mover again. Now you only have to re-setup all mover specific attributes again ...
  4. When you don't use a mover triggered: set its Tag to none. All movers with the same Tag (default='Mover') get the same ReturnGroup by default. So when any mover returns when encroached, all other movers with same Tag will return too although there's nothing encroaching.

Tip: Using mouse with Windows XP (This is not an editing trick)
Why: Mouse movement under Windows XP isn't usable for unreal.
How: You have to patch your registry (!):
  1. MAKE A BACKUP OF YOUR REGISTRY BEFORE ANY CHANGES!
    I don't take any responsibility of any crashes with these files, but it helped me getting rid of the $"()/&$§§(% mouse acceleration!
  2. Use mouse_fix_user.reg to change the mouse acceleration curve of the current XP user (restore with mouse_reset_user.reg). Logout and login after you've added this to your registry.
  3. If this doesn't help (unreal seems to read the default XP user's settings) then use mouse_fix_default.reg to change the mouse acceleration curve of the default XP user (restore with mouse_reset_default.reg). Reboot after you've added this to your registry.
  4. Hint: The files are readable in notepad, so you're able to see which settings are changed, you may look up the original values before adding these files to your registry and you may backup the values yourself before importing these files.
Save the file(s) to disk, then double click the file. You will be prompted to add the file(s) to your registry then.

Tip: UnrealEd hangs up before creating viewports
Why: If you sized your UnrealEd's viewports to odd values the editor won't start again but hangs up consuming 100% cpu before creating the viewports.
How: You have to patch your registry (!):
  1. MAKE A BACKUP OF YOUR REGISTRY BEFORE ANY CHANGES!
    I don't take any responsibility of any crashes with these files, but it helped me fixing this bug.
  2. Kill any hanging UnrealEds
  3. Use unrealed_hangup_user.reg to reset the viewports sizes of the current XP user to the default values.
  4. Start your UnrealEd again.
  5. Hint: The file is readable in notepad, so you're able to see which settings are changed, you may look up the original values before adding this file to your registry and you may backup the values yourself before importing this file.
Save the file(s) to disk, then double click the file. You will be prompted to add the file(s) to your registry then.