============================================================= The Map Editing FAQ for Duke Nukem 3D - Version 2.1 This File is Authored and Copyright (c) 2000 by: Jonah Bishop Visit Map FAQ Central Today! http:// Please See Section 0.10 for Licensing Information Please See Section 0.6 for Printing Information ============================================================= Table of Contents: =============================== SECTION 0 - MAP FAQ INFORMATION =============================== # 0.1 Author Information 0.2 Contacting the Author # 0.3 Included Files # 0.4 Revision History 0.5 Credits and Acknowledgements 0.6 Where to Download this FAQ 0.7 Printing Information 0.8 The Online Version 0.9 Map FAQ Central 0.10 FAQ Errors and Reporting Them 0.11 Licensing Agreement 0.12 Where are all the questions? ================================== SECTION 1 - INFORMATION ABOUT MAPS ================================== 1.1 What is a map? 1.2 What can I do to maps? 1.3 Can I look at the game maps? 1.4 What do I use to make maps? 1.5 Can I make maps for other games? 1.6 How do I run user maps? 1.7 What exactly is the Build engine? ================================================== SECTION 2 - THINGS YOU SHOULD KNOW BEFORE STARTING ================================================== 2.1 Introduction 2.2 2D and 3D Modes 2.3 Hitags and Lotags 2.4 Placing Sprites 2.5 The Special Sprites 2.5.1 Sector Effectors 2.5.2 Activator 2.5.3 Touchplate 2.5.4 ActivatorLocked 2.5.5 Music & SFX 2.5.6 Locator 2.5.7 Cycler 2.5.8 Masterswitch 2.5.9 Respawn 2.5.10 GPSpeed ========================== SECTION 3 - YOUR FIRST MAP ========================== 3.1 Installing and Setting up Build 3.2 Creating a Room 3.2.1 Adding Textures 3.2.2 Adding Sprites 3.2.3 Adding a Nested Sector 3.2.4 Raising and Lowering Sectors 3.2.5 Parallaxing Skies 3.2.6 Sloped Surfaces 3.2.7 Creating a Circle 3.3 The Art of Shading # 3.3.1 Shading Techniques 3.4 Advanced Features 3.4.1 Splitting Walls 3.4.2 Resizing and Moving Sectors 3.4.3 Joining Sectors 3.4.4 Deleting Sectors 3.4.5 Copying and Pasting Sectors 3.5 Completing this Map ================================== SECTION 4 - MAKING ALL THE EFFECTS ================================== ---------------- 4.0 INTRODUCTION ---------------- 4.0.1 Introduction --------- 4.1 DOORS --------- 4.1.1 Doom Type Doors # 4.1.2 Adding Sounds to Doors 4.1.3 Reversed Doom Type Doors 4.1.4 Splitting Doom Doors 4.1.5 Swinging Doors 4.1.6 Swinging Glass Doors 4.1.7 Problems and Fixes with Swinging Doors 4.1.8 Sliding Star Trek Doors 4.1.9 Splitting Star Trek Doors 4.1.10 Teeth Doors 4.1.11 Another Way To Do Teeth Doors 4.1.12 Sliding Doors 4.1.13 See Through Sliding Doors 4.1.14 Rotating Subway Doors 4.1.15 Making Doors Auto Close 4.1.16 Making Locked Doors (See sections 4.11.1 - 4.11.4 for switch operated doors) -------------------- 4.2 PARALLAXED SKIES -------------------- 4.2.1 Correctly Parallaxed Skies 4.2.2 Problems And Fixes With Parallaxing -------------------- 4.3 LIGHTING EFFECTS -------------------- 4.3.1 Making Lights Blink 4.3.2 Making Lights Blink When Shot 4.3.3 Open Door & Room Lights Up 4.3.4 Light Switches 4.3.5 Colored Lights 4.3.6 Pulsating Lights ------------------ 4.4 MOVING SECTORS ------------------ 4.4.1 Rotating Sectors (Gears) 4.4.2 Using Rotating Sectors for Doors 4.4.3 Two-Way Trains 4.4.4 One Car Subways 4.4.5 Making Multi-Car Subways 4.4.6 Notes On Subways -------------------------- 4.5 GENERAL SECTOR EFFECTS -------------------------- 4.5.1 Earthquakes 4.5.2 Rooms Over Rooms 4.5.3 Stretching Sectors 4.5.4 Conveyor Belts & Water Current 4.5.5 Making Curtains Draw Back 4.5.6 The Pool Table 4.5.7 Fish Tanks --------- 4.6 WATER --------- 4.6.1 Submergible Water 4.6.2 Sloped Water Sectors 4.6.3 Swimming in Slime 4.6.4 Making Waves 4.6.5 The Rising Water Effect 4.6.6 Level Over Level Water Trick 4.6.7 Timed Underwater Airlocks (Complex) 4.6.8 Rising Water on Sloped Surfaces (Complex) -------------------------- 4.7 WALLS AND WALL EFFECTS -------------------------- 4.7.1 Masked Walls 4.7.2 One-Way Walls 4.7.3 Forcefields and Controlling Them 4.7.4 Wall Information ----------- 4.8 MIRRORS ----------- 4.8.1 Mirrors 4.8.2 Problems and Solutions with Mirrors 4.8.3 Making the Two Way Mirror --------------- 4.9 TELEPORTERS --------------- 4.9.1 Teleporters 4.9.2 Sewer Holes & Silent Teleporters 4.9.3 One Way Teleporters (Version 1.4 or 1.5 Required) 4.9.4 Version 1.3D One Way Teleporters --------------------- 4.10 ENDING THE LEVEL --------------------- 4.10.1 Nuke Buttons 4.10.2 Ending Sectors 4.10.3 Ending Sectors with Messages ------------------- 4.11 SWITCH EFFECTS ------------------- 4.11.1 Switch Activated Doors 4.11.2 Combination Door Switches 4.11.3 Another Version of Combo. Switches (Version 1.4 or 1.5 Required) 4.11.4 Multi-Door Switches ---------------- 4.12 C-9 EFFECTS ---------------- 4.12.1 C-9 Canisters (Visible) 4.12.2 Switch Activated Explosions 4.12.3 Touchplate Activated Explosions 4.12.4 Cracked Walls 4.12.5 Fixing The 'Texture Problem' 4.12.6 Making the Ceiling Blow Up (And Enemies Fall From the Sky!) ------------------------------- 4.13 SECTORS THAT RISE AND FALL ------------------------------- 4.13.1 Lifts 4.13.2 Switch Operated Lifts 4.13.3 Locked Lifts 4.13.4 Elevator Transports 4.13.5 Constructing Destructible Buildings 4.13.6 Crushers (Engine Pistons) 4.13.7 Making the Ceiling Fall Upon an Explosion 4.13.8 Rotating & Rising Sectors 4.13.9 Making Ceilings and Floors Drop Down 4.13.10 Incremental Rising and Falling Sectors (V. 1.4 or 1.5 Required) ---------------------------- 4.14 MUSIC AND SOUND EFFECTS ---------------------------- 4.14.1 Types of Sound Effects 4.14.2 Adding Your Own Music and SFX 4.14.3 Sector Activated Sounds 4.14.4 Making Phones Ring # 4.14.5 The Sound Effects Listing ------------------------- 4.15 WORKING WITH SPRITES ------------------------- 4.15.1 Working With Sprites 4.15.2 Security Cameras 4.15.3 Vents 4.15.4 "3D" Bridges 4.15.5 Demo Cameras 4.15.6 Spawning Stuff 4.15.7 Active Tripbombs 4.15.8 Making the Mini-Boss 4.15.9 Exploding Helicopter & Car 4.15.10 Cranes ----------------------------- 4.16 MULTIPLAYER LEVEL MAKING ----------------------------- 4.16.1 Dukematch & Co-op Starting Positions 4.16.2 Making Items Appear Only In Multiplayer 4.16.3 Making Duke TAG Levels (Version 1.4 or 1.5 Required) ------------------ 4.17 MISCELLANEOUS ------------------ 4.17.1 Glass 4.17.2 Secret Areas 4.17.3 Shooters 4.17.4 Turning Shooters Off 4.17.5 Difficulty Settings 4.17.6 Signs That Fall When Shot 4.17.7 Lightning and Thunder (Version 1.4 or 1.5 Required) 4.17.8 Making Rain 4.17.9 Forcing Duke To Start Weaponless =============================== SECTION 5 - GENERAL INFORMATION =============================== 5.1 Palette List # 5.2 Group File Format 5.3 Facts On Dimensions 5.4 Sector Effector Lotag Listing 5.5 Sector Lotag Listing 5.6 List of Official Levels 5.7 List of Cheats 5.8 List of Secret Messages in the Game ================================================= SECTION 6 - THE MOST COMMON QUESTIONS AND ANSWERS ================================================= 6.1 I can't find Build on my CD - where is it? 6.2 I can't get Build to work. How do I do it? 6.3 How do I enter 3D mode? # 6.4 3D Mode is screwed up! What do I do to fix it? 6.5 How can I play my own maps? 6.6 When I run my level, I get an error. What does it mean? 6.7 Why does the game crash when I run my level? 6.8 Build sucks. Is there another editor available? 6.9 Walking under a parallaxed sky kills me. Why is this? 6.10 My subway shoots rockets at me - Why? =========================================== SECTION 7 - COMMON BUILD AND RUNTIME ERRORS =========================================== 7.1 Found Lonely Sector Effector 7.2 Subway Found No Zero'd Sectors With Locators 7.3 Can't Make a Sector Out There # 7.4 Too Many 'Anim' Walls (Max. 512) ======================================= SECTION 8 - UTILITIES FOR DUKE NUKEM 3D ======================================= 8.1 Wad2Map 8.2 Wad2Art 8.3 Kextract 8.4 Kgroup 8.5 Group File Studio ======================== SECTION 9 - FINISHING UP ======================== 9.1 Map Authoring Template 9.2 Uploading Your Level Sections that have been updated or added in this version are denoted with a pound sign [#] in the table of contents. =============================== SECTION 0 - MAP FAQ INFORMATION =============================== 0.1 Author Information My name is Jonah Bishop and I spend most of my time doing something computer related (gaming is the largest activity). I enjoy editing of any kind, and have always had a great interest in Duke Nukem 3D and Build. In addition to this FAQ, I maintain the Map Editing FAQ for Shadow Warrior, the Con Editing FAQ for Duke Nukem 3D, and Group File Studio. 0.2 Contacting the Author Being a student brings the pressures of school and homework, and it unfortunately brings the fact that I don't have much time for answering tons of Build questions. If you do need to get in touch with me, leave me some feedback by dropping by the Map FAQ Central feedback form: http://mapfaq.3dportal.com/aboutmfc/feedback.html I can't promise a reply, but I will certainly do my best to help you in your building career. 0.3 Included Files Files below marked with the pound sign (#) have either been added or updated since the last version of this FAQ. # MPFQDN21.ZIP - The main zip file # MPFQDN21.TXT - The FAQ itself (this file) # SECT4.TXT - Section 4 (the how-tos) by itself The files that should be included in the main zip file are as follows: ADVANCED.MAP - Contains more difficult tutorials, step by step AIRLOCK.MAP - Example map showing how to create underwater airlocks ATOMIC.MAP - Contains atomic edition specific how-to examples CREDITS.TXT - FAQ Credits and Acknowledgements LICENSE.TXT - License Agreement for this FAQ MIRRORS.MAP - Mirrors tutorial map README.1ST - Important information about this FAQ RHISTORY.TXT - FAQ revision history ROTATEDR.MAP - Example map showing how to create complex rotating doors SLOPEWTR.MAP - Example map showing how to create rising water on slopes STHRUSLD.MAP - Example map for see through sliding doors STHRUSLD.TXT - Information on see through sliding doors SWLIFT.MAP - Example map showing how to create switch operated lifts TDOOR2.MAP - Example map for second way to create teeth doors TDOOR2.TXT - Information on the second way to create teeth doors TEMPLATE.TXT - User map authoring template TUTORIAL.MAP - Contains all examples for all effects 0.4 Revision History The revision history for this FAQ resides in its own file, which can be found in the zip file. The name for this file is rhistory.txt. 0.5 Credits and Acknowledgements The credits and acknowledgements for this FAQ resides in its own file, which can be found in the zip file. The name for this file is credits.txt. 0.6 Where to Download this FAQ The latest version of this Map Editing FAQ will always be located at either Dukeworld or Map FAQ Central. The URLs for these two sites are as follows: http://mapfaq.3dportal.com -- Map FAQ Central http://www.dukeworld.com -- Dukeworld 0.7 Printing Information If you want to print this FAQ, it is recommended to set your page margins to the following values (all units are in inches): Top : 1.00 Bottom : 1.00 Right : 1.00 Left : 1.00 It is also recommended that you set the font for this entire FAQ to Courier New. This ensures that the FAQ looks the way it was intended. Consult your text editor's help to see how to change page margins and font (it's quite easy to do). 0.8 The Online Version An online edition of this FAQ is available at both Map FAQ Central and Dukeworld. The URL to the table of contents for this FAQ is as follows: http://mapfaq.3dportal.com/mapfaqonline/index.html 0.9 Map FAQ Central The Map Editing FAQ has an official home, and you can visit it at the following URL: http://mapfaq.3dportal.com Map FAQ Central is a large and ever growing site, with links to user created files, tons of cool sites on the web, and more Build information than you can shake a stick at! A list of the best ever levels is available, for both Shadow Warrior and Duke Nukem 3D. Be sure to tell your friends about it too! 0.10 FAQ Errors and Reporting Them Sometimes I'll goof up and make a mistake while writing this FAQ, and other times I just get the information all wrong. If you find an error in this FAQ, or if you have a suggestion to make this FAQ better, please visit the following URL to submit an error reporting form to me: http://mapfaq.3dportal.com/aboutmfc/feedback.html You will definitely be credited for finding any error (no matter how small) and I thank you in advance for letting me know about them. 0.11 Licensing Agreement A special license has been issued with this FAQ, in order to prevent the misuse and misdistribution of this FAQ. I work hard on this FAQ (I love doing it to) and I don't want people stealing the work that I've put into this guide (you wouldn't want that to happen either, right?). So please take a moment to read through it, and follow the guidelines it sets. Thanks! The filename for this file is : license.txt 0.12 Where are all the questions? FAQ is supposed to stand for frequently asked questions, right? Yes, it is supposed to stand for that term. But where are all the questions in this FAQ? Well, over the course of the development of this guide, the questions have turned into headings for information (take a look at the table of contents to see). I have turned away from the basic question and answer format in favor of the current format in use. The *most* frequently asked questions, however, can be found in section 6 of this FAQ. ================================== SECTION 1 - INFORMATION ABOUT MAPS ================================== 1.1 What is a map? A "map" is a general term used to describe the levels in Duke Nukem 3D (or just about any other game for that matter). Maps include all the level information (effect parameters, wall placement, sprite placement, etc.). 1.2 What can I do to maps? Unlike Doom (which made use of wad a pwad file formats), maps do not contain the art textures, enemy code, sounds, or other such objects in the game. Maps are solely the layout of a level, the effects used in that level, etc. Enemy coding, sounds, and art textures can be found in the .grp and .con files. 1.3 Can I look at the game maps? Yes. The file "Kextract" is used to extract map files into your game directory, where they then can be viewed. Take a look at section 8 of this FAQ to see how to use this program. You also can view the maps without extracting them. At the command prompt in DOS, type in the following: BUILD ExLyy.map The letter x (after the letter E) is the episode number to look at, and the letters yy (after the letter L) is the level number to look at. For example, to view episode 2, level 4, I would type: BUILD E2L4.map 1.4 What do I use to make maps? The only editor available for creating your own maps is the Build program, which was written by 3D Realms. This editor was the editor used to create the levels found in Duke Nukem 3D, so you can do everything that the official level designers did in their levels. Build is only available on the game CD, and can be found under the \goodies\build directory on the CD. 1.5 Can I make maps for other games? Yes. The Build engine that comes with Duke Nukem 3D, was made specifically for Duke Nukem 3D, but it can now be used to make levels for NAM. You can get more information on NAM by visiting the NAM web site: http://www.3dportal.com/nam 1.6 How do I run user maps? Running user maps that you create and/or download is as easy as using a short command line parameter. Type in either of the following lines in DOS: duke3d -map foo.map duke3d -map foo In the lines above, foo is the name of the map that you wish to run. The .map extension is not needed, but can be used. 1.7 What exactly is the Build engine? The Build engine is the graphics engine that games such as Duke Nukem 3D, Shadow Warrior, Blood, and NAM run on. Although it isn't truly 3-D, it does give a nice feel for the environment that has been presented, and it gives the player a never before seen level of interactivity in this environment. ================================================== SECTION 2 - THINGS YOU SHOULD KNOW BEFORE STARTING ================================================== 2.1 Introduction There are quite a few things that you will need to know prior to making your first level. Read this section completely, and you will have everything I feel that you need to know to start making levels! 2.2 2D and 3D Modes There are two different editing modes in Build. The 2D mode, which shows the layout of the map, sprites, and other goodies, and the 3D mode, which looks like the game itself. To switch between these two modes, press the [ENTER] key on the numberpad. The regular [ENTER] key does not switch modes, so this must be noted! In 2D mode, you lay out the map itself. Here you draw walls, place sprites, change tags of walls, sprites, and floors, and save your work. In 3D mode, you change the textures of the walls, change how high or low the floor, ceiling, sprites, and other objects are, and you change the shade here as well. 2.3 Hitags And Lotags This topic is complicated, yet simple at the same time. Tags can be given to walls, sprites, or sectors, and they tell the wall, sprite, or sector what to do. There are two numbers that any of these objects can be given. The first number is called a hitag. Hitags usually identify the object, so that other objects can be paired with it (I'll give an example in one moment). Lotags are generally a fixed number that tells the game exactly what to do. Here is an example: I make two sectors, and I want them to be teleporters (i.e. - I step into one sector, and teleport to the other sector). I place a sector effector sprite in both sectors, and give them tags to identify them. I first give *both* sprites a lotag of 7. This number is preset, and it tells the game that when the player enters this sector, he is to "teleport" to the other teleporting sector. I then give *both* sprites the *same* hitag. This number must be unique, as it gives an identity to both sprites. Here is what the program is probably thinking when I'm playing this level: Hmmm. The player has just entered a sector with a special sector effector sprite in it (lotag of 7). Let me see if I can find another teleporting sector with the same identity (unique hitag), so that I can "teleport" him there. Hey - There's the other sector! WOO-HOO! All the hitags do are link various effect sprites together. If you only gave one sprite a hitag, the program would not be able to find another, matching teleporting sector, and then would not be able to teleport you anywhere, because it can't find this sprite's "mate". Here are the key strokes that you need to do in order to place these tags (in 2D mode): Sector Hitag : Press [H] in the desired sector Sector Lotag : Press [T] in the desired sector Sprite Hitag : Press [ALT]+[H] on the desired sprite Sprite Lotag : Press [ALT]+[T] on the desired sprite Wall Hitag : Press [ALT]+[H] on the desired wall Wall Lotag : Press [ALT]+[T] on the desired wall These same tag assignments can be made in 3D mode as well. Here are the key strokes for use in 3D mode: Sector Hitag : Press [']+[H] in the desired sector Sector Lotag : Press [']+[T] in the desired sector Sprite Hitag : Press [']+[H] on the desired sprite Sprite Lotag : Press [']+[T] on the desired sprite Wall Hitag : Press [']+[H] on the desired wall Wall Lotag : Press [']+[T] on the desired wall NOTE: To set wall tags in 2D mode, it is advised to turn off the grid, so that you are not selecting sprites. Press [G] several times to turn the grid off. 2.4 Placing Sprites NOTE: When I say that you should press the [V] key (or any other key for that matter) on a sprite, I mean that you should move the cursor over that sprite with the mouse, and then press the key. Without sprites, levels in Duke Nukem 3D would be nothing. Sprites make up all the "eye candy" in the level and are the root of all effects in Duke 3D. To place a sprite in the level, press the [S] key in either 2D or 3D mode. It is advised to place them in 2D mode, as you have the grid as a guide for placement. There are several different modes sprites can be in (3 of them to be exact). Sprites can lie flat on the floor, be "pasted" to the wall, or they can be in the "normal" mode (guns and other goodies are usually in this mode). Normal mode is the default setting, and to switch the current mode of a sprite, enter 3D mode, and press the [R] key on it. It will go from normal to being pasted on the wall (according to which direction the sprite is facing). Pressing [R] on it again will paste it to the floor, and again will make it normal. NOTE: If you place a sprite on a wall in 3D mode (using the [S] key), the sprite will automatically be "pasted" flat to the wall that you placed it on. NOTE: Only "square" sprites can be made to lie flat on the floor. Sprites that fit this condition are ones that have the same x-axis height as the y-axis height. Sprites can face in different directions as well. In 2D mode, you will notice a "tail" coming out of the circle which represents the sprite. This tail points in the direction that the sprite is currently facing, and it also denotes the "front" side of the sprite. To change this, press the [,] or [.] keys on the sprite in 3D mode. To change the texture of a sprite (changing what the sprite actually is), enter 3D mode and press [V] on it. This will bring up a screen of all the current sprites used in the level you currently are working on (This is useful as you start to need the same sprite over and over). Press [V] again, and you will proceed to the tile selection screen. Here, you can press [PGUP] and [PGDN] to scroll through the many textures used in Duke. When you have found a suitable texture, press [ENTER]. To raise or lower the sprite, press the [PGUP] or [PGDN] keys on the sprite in 3D mode. This changes the altitude of the sprite. Here is an example of placing a sprite in a room: I want to place a calendar on the wall in my room. In 2D mode, I would press the [S] key ON THE WALL where I want the sprite to be, and I would then enter 3D mode, pressing the [V] key on it twice. I would select the calendar sprite, raise it up to the height I want it on my wall (with the [PGUP] and [PGDN] keys) and then press [R] on it *once*. But now that I look at it, the sprite is turned to the side, or it is backwards! You must remember to set the sprite direction with the [,] and [.] keys. The tail should face *away from the wall, so that it lies flat on the wall. Check out some of the levels that came with the game if you don't understand. 2.5 The Special Sprites There are a few special sprites that need to be explained. The most important ones are as follows: 2.5.1 Sector Effectors Sprite #1 - The sector effector sprite is the most used sprite in the entire game. It does just about what the name says: effects a sector. These sprite are used to create game effects and manipulate sector attributes. These sprites are the main tool used to create all effects in Duke Nukem 3D. Place the sprite in the sector to effect. The lotags for these are preset, and a list of the lotags for this sprite can be found in section 5.4. 2.5.2 Activators Sprite #2 - Activators are used to activate a sector effector (SE) sprite when a switch or Touchplate is triggered. They also can activate sector lotags. 2.5.3 Touchplates Sprite #3 - The Touchplate will activate an activator or a Masterswitch sprite, when the player walks over the sector that contains it. A hitag of 0 means that the Touchplate will activate every time the player walks on top of the sector. A hitag of greater than 0 means that the Touchplate will only be activated that many times (whatever number you put on there). The only number I've ever seen used that is greater than 0, is 1 (to activate an effect only once). But use the value that you want to. 2.5.4 ActivatorLocked Sprite #4 - This sprite locks the sectors lotag function, so that it cannot take effect until the player unlocks it with a switch or Touchplate. This is used to make locked doors and other such effects. 2.5.5 Music & SFX Sprite #5 - This sprite is used to create all the sound effects in the game. It can be used in 3 ways: Activation Sound, Ambient Sound, and Echo Effect. We will go into this sprite in much more detail later on. 2.5.6 Locator Sprite #6 - These are used to define a path that moving sectors and certain enemies (the Pigcop Recon Cars) will follow. Both moving sectors and the Pigcop Recon Cars cannot be used in the same map. They are also used as the endpoints of a two-way train. 2.5.7 Cycler Sprite #7 - This sprite is used to make the sector floor, walls, and ceiling pulsate in brightness. Section 4.20 goes into great detail about this type of sprite. 2.5.8 Masterswitch Sprite #8 - This sprite is the exact same as the activator, but it has the ability to use a time delay. The hitag is the time delay that the effect should wait to be carried out. I think that a value of 32 is one second. 2.5.9 Respawn Sprite #9 - This sprite is used to spawn enemies or other items after activated by a Touchplate or switch. An example of this is entering a room, and a bad guy spawns behind you. 2.5.10 GPSpeed Sprite #10 - This sprite is used to define rates of effects. The lotag is the only thing that is needed here, and the value for it is how fast the effect should go (i.e. - smaller means slower). These cannot be used on all effects, but they can be used on some. ========================== SECTION 3 - YOUR FIRST MAP ========================== 3.1 Installing and Setting up Build Build is located on your Duke Nukem 3D CD, under the /goodies/build directory (if this directory isn't on your CD, consult section 6 of this FAQ for more information on why this is). This program can be installed from the main game installer, so that should be the place to install from. Simply run the install program, choose *only* to install Build, and install it into your game directory (i.e. - the Build program and all associated files should be in the same directory as the game itself). Not installing this program into the game directory can cause some major problems, so this is where to install it. After the program has been installed, enter into your game directory and run the BSETUP program. Within this program are several menus where you can change your settings for sound cards, video modes, and more. YOU SHOULD ONLY CHANGE THE VIDEO MODE! Changing other items in this program will (for some strange reason) cause this setup program to not save your settings. So change the video mode to the mode you want to run (make sure your system can run in that mode before setting it that way), and select "Save Settings & Exit". Build does not use music and sound effects at all, so setting these items isn't needed anyway. Now, simply type "build" at the DOS prompt (without the quotation marks of course) and you will be launched into the program! 3.2 Creating a Room Throughout this section, I will walk you through making your very first Duke Nukem 3D level. Build is an extremely fun editing program, and some cool stuff can be done in this editor, so let's get started. NOTE: The user map TUTORIAL.MAP (which can be found in the zip directory that this FAQ came in), is an example map that I have created, and which includes everything covered in this section. If you want to see exactly what something looks like as you go along in this section, just take a look at this map in Build. NOTE: Save early and *often*! I cannot stress this enough - I have lost tons of work before by forgetting to save my work. Pressing the [ESC] key in 2D mode allows you to save your work by pressing the [S] key (saves it as the current filename (the default is newboard.map)) or by pressing the [A] key (saves it as a new filename, which you specify). The first thing that we'll do is create a square room. Press the [G] key several times, until the largest grid size in Build appears. Zoom out a little bit (by using the [Z] key). Move your mouse cursor near one of the vertices, and press the [SPACEBAR]. What you are doing is beginning to draw the walls of your level. Move your mouse cursor up 3 grid blocks and press the [SPACEBAR] again. You have just drawn your first wall! Move to the right 3 blocks, press [SPACE] again, move down 3 blocks, press [SPACE] again, and finally move the cursor back to the first vertex you drew, pressing [SPACE] one last time. Your room should now be 3 grid blocks by 3 grid blocks. Now, press the [SCROLL LOCK] key. This is how you set your starting position. If you move your right arrow in 2D mode (by clicking the right mouse button where you want the arrow to be), you will see that a brown arrow has appeared. This tells you the location and the direction at which the player will enter the level. 3.2.1 Adding Textures Textures are added in 3D mode. Press the [ENTER] key on the number pad (it's found on the far right on your keyboard). You should now be in 3D mode, which looks exactly like the game. Cool, huh? The current texture, however, is quite ugly, and one that you (hopefully) do not want to use. So let's change the texture of the walls, the ceiling, and the floor. Move the mouse cursor over the floor. Press the [V] key once. This screen (which currently has that ugly texture on it) is a listing of all the textures that appear on either the floor or ceiling of your level (This screen becomes quite handy later on when you want to use a texture already used in your level). Now press the [V] key again. You should be looking at a large screen of sprites, textures, and other items. Press the [PGDN] key several times, or use the arrow keys to scroll around the screen. There are literally thousands of tiles in Duke Nukem 3D, so choose one that you want to use as your floor, and press the [ENTER] key (not the one on the numberpad). Your floor is now the texture you wanted it to be! Now do the exact same thing for the ceiling. Now press the [E] key (while your mouse is over either the floor or the ceiling). This toggles both floors and ceilings between small and large scale factors. Experiment with this, and see how it changes things. Note that this key only works on ceilings and floors - all other objects are not affected at all. When you have that done, move the mouse cursor over one of the walls in your level. Press the [V] key once. The screen you are now looking at is much like the first one for the floor and ceiling, but this time it shows all the wall textures used in your level. Press [V] again, and select a good texture for the wall. Your texture appears, but it doesn't look like it's all there! You need to scale the texture by using the [4], [8], [6], and [2] keys on the numberpad. Experiment a little, and get it to look like you want. Pressing the [5] key, in addition to the keys listed above, will make the scale of the texture change in larger increments (making it faster to do). You could do this for each wall, but that would take quite some time to do in a big level. So move the mouse cursor over the wall that you have just changed (after you have it like you want it) and press the [TAB] key (in version 1.3D of the game, you need to press this key twice - if you don't, the small white text that appears on the screen will stay there). Now move the mouse cursor over one of the other walls. Press the [ENTER] key (not the one on the numberpad). You have just copied and pasted the texture, its scale factor, and its shade value! This makes texturing a room much quicker, and it is quite a handy feature. Do this for each wall. (NOTE: Sometimes, the scale isn't pasted 100% correctly, so minor adjustment might be needed.) 3.2.2 Adding Sprites Sprites are what levels in Duke Nukem 3D revolve around. Without sprites, this game would have no meaning at all. Sprites consist of enemies, weapons, ammo, sector effectors, and all kinds of eye candy. Placing sprites is quite easy and can be done in either 2D or 3D mode. Placement in 2D mode is *much* easier, because you have the grid to line up sprites with other objects. Let's add a shotgun sprite to our level. In 2D mode, move the mouse cursor into one of the corners in the room. Press the [S] key. You have just placed a sprite. What you now see is a circle with a "tail" coming out of it. The tail indicates the direction of the sprite. This is not important in the case of ammunition, health, enemies, weapons, and some eye candy, but some objects that you might want to place on a wall need the angle to be just right. If the sprite you just placed is currently pink, it means that this sprite will block your movement in the game. If it is pink, move your mouse cursor over the sprite you just placed and press the [B] key. This toggles sprites between "blockable" and "not blockable". No sprites *need* to be blockable, but it comes in use when placing a table or chair sprite and you want it to block the movement of the player. Now enter into 3D mode. You should see some sort of sprite (probably that ugly texture again). Move the mouse cursor over the newly created sprite, and press the [V] key once. Like the textures, this first screen shows you what sprites are used in your level. Press the [V] key again. Select tile #28 (which is the shotgun sprite). You have now placed a shotgun in your level! You might want to size this sprite down a bit (using the [4], [8], [6], and [2] keys on the numberpad), but weapons, health, ammo, enemies, and inventory items all size themselves in the game. Now let's add a poster type sprite to our level. In 2D mode, move your mouse cursor over one of the walls of your room (the cursor should be on the side of the wall that the player will see). Press the [S] key. Now change the angle of this sprite to face straight away from the wall. This is done using the [,] and the [.] keys (also known as the [<] and [>] keys). When you have the angle properly set, enter 3D mode. Change this sprite to #500. We want this sprite to stick to the wall, but it doesn't seem to be doing that. Move the mouse cursor over the sprite in 3D mode, and press the [R] key once. This makes the current sprite lie in a flat plane, perpendicular to the sprite's angle. So if the sprite is facing to the right (or east), the sprite would lie flat in the north-south plane (the sprite would still face east). This is kind of hard to explain, but play around with it to see what I mean. Change the angle of the sprite after the [R] key has been pressed, and you will see how the flat position and the angle relate. Size your sprite to your liking. Let's add one more sprite to our level for now. Place one sprite in 2D mode somewhere in the middle of your room. Change this sprite to #568. This is the magazine sprite. Back in 2D mode, change the angle of this sprite to be 45 degrees or something of that nature (press the [<] or [>] key twice to do this). Now enter 3D mode again. This time, move the mouse cursor over the sprite and press the [R] key *twice*. This command makes sprites lie flat on the floor. Pressing [R] again returns the sprite to its default setting. Size this sprite to your liking. NOTE: Not all sprites can be made to lie flat on the floor. If the sprite you want to make lie flat on the floor looks really weird (or messed up) when you try to place it flat on the floor, it simply cannot be made to be in that position. If I am not mistaken, the only sprites that can lie flat on the floor are square sprites (their x-axis size is equal to their y-axis size). 3.2.3 Adding a Nested Sector Now we need to add what is called a "nested" sector. This term simply means that you have a sector within a sector. We will first create a small box sector in our room. Somewhere in your room, begin drawing a new sector. Make sure that the grid size is smaller than the largest setting, and draw a square sector again. If you enter 3D mode at this point, you will notice that the sector you just drew has appeared as new walls, taking a chunk out of your room. This is not what we want, so enter back into 2D mode. Move your mouse cursor inside this newly created sector, and press the [ALT]+[S] keys. Your sector walls should have just turned red! Now enter back into 3D mode again. Looks like normal huh? Well, it's not quite like it was before. You have just created a nested sector, which will now raise up from the floor. 3.2.4 Raising and Lowering Sectors In 3D mode, move your cursor over to the general area of your newly created nested sector (point the cursor at the sector floor). Now press the [PGUP] key several times. You are now raising your sector out of the ground! Raise it to a decent height (but don't raise it all the way to the ceiling), and put some good textures on it (maybe the crate texture or something of that sort). Using the [PGUP] key raises either the floor or ceiling of a sector, and using the [PGDN] key lowers either the floor or ceiling of a sector. This is how you will set your sector heights in the game, and will most likely become one of the most used commands in Build. These two commands can also be used to raise and lower sprites. Remember that poster-type sprite we added to our level? Press the [PGUP] key on it several times. You have just raised the sprite up on the wall. Very useful and very easy, is it not? 3.2.5 Parallaxing Skies In 3D mode, move the mouse cursor over the ceiling of the room sector. Now change the texture of this sector's ceiling to #89. This is the Los Angeles texture, and for it to look right, needs to be parallaxed. Press the [P] key. Do this for the ceiling of the nested sector we created as well. Several special cases with parallaxing (and several problems) are documented in the parallax sub-section of section 4. 3.2.6 Sloped Surfaces Let's now create a sector off to one side of our room. To do this, we first need to insert some vertices. Pick the wall that you want to have the sector on, and move your mouse cursor over that wall. Press the [INSERT] key in the places on this wall where you want the vertices for our new sector to be (you should only need 2). Move the mouse cursor over one of these newly created vertices and press the [SPACEBAR], starting the drawing process. Now move the mouse cursor over the second vertex that you inserted, pressing [SPACE] again. The move out away from the room sector, drawing your sector as normal. When you finish drawing your sector, the part of the wall between the two vertices you inserted should change into a red line. Enter 3D mode and take a look at the newly created sector. Let's make the floor of this sector sloped. By using the [ and ] keys, slope the floor of this sector downwards (or upwards, whichever you prefer - just experiment with it). Keep in mind that when sloping sectors, you need to set the "first wall" of the sector. The "first wall" is the wall that the slope will pivot around (think of it as a hinge point). This can be set in either 2D or 3D mode by pressing the [ALT]+[F] key combination on the wall you want to be the first wall of the sector (I personally find it easier to do this in 3D mode). Experiment with setting this parameter, and see how it changes the tilting angle of the sector (try this on our newly created sector). 3.2.7 Creating a Circle This is a feature that is (unfortunately) not used enough in level design, and it can be a little tricky to get just right. Somewhere in your level (do this outside of your room sectors), draw a triangular sector. Move your cursor over one of the walls of this sector, and press the [C] key. Now move the mouse around. You will see the beginnings of a circle, but we need to manipulate this circle to get it the way we want it to be. Pressing the [-] and [+] keys (on the numberpad) decreases and increases the number of points on the circle, respectively. Pressing the [SPACEBAR] draws the circle, while pressing the [C] key cancels the drawing of the circle. Once you've got half of the circle drawn, move the vertex of the triangle (that you initially created) that is sticking out away from the half-circle, over one of the vertices that runs across the half-way point of the circle. This is quite hard to explain in words, so take a look at the tutorial map (I've placed several iterations of this circular construction on the map, so you can see how this is done step by step). Then create the other half of the circle. 3.3 The Art of Shading One of the key elements in any level made is the shading technique. Shading is a delicate art that must be learned and used *everywhere* in the level. Leaving your level's walls, sprites, floors, and ceilings set with a shade value of 0 makes most level reviewers shun (or even skip) your level entirely. There are several shading techniques that you must learn to use, and they're not hard to learn at all! Once you learn these techniques, you will be able to make some very cool looking levels! 3.3.1 Shading Techniques Before we learn about the different techniques needed to make shading what it needs to (and should) be, we first need to learn how to shade. All shading is done in 3D mode. Pressing the [+] key (on the numberpad) makes the object under the mouse pointer get brighter (the shade value decreases). Pressing the [-] key (on the numberpad) makes the object under the mouse pointer get darker (the shade value increases). For small shading amounts, this can be handy, but to make things dark, pressing these keys over and over can be a pain. So there's a shorter way to do this! Point at the object you want to shade and press the [']+[S] key combination. Then enter the value you want the shade to be. The larger the number, the darker the shade. A value of about 50 is almost completely dark, but you can go all the way up to 128. Negative values are allowed (down to -128) and make things bright (but not noticeably lighter than a shade value of 0). Entering negative values in version 1.3D isn't as easy as in 1.4 or 1.5, but it can be done. To enter negative values, you simply need to enter a value that is greater than 128. The value you enter will simply be 256 minus whatever value you type in. For example, if you type in a value of 155, the value entered will be -100. Remember this only needs to be done in version 1.3D. In versions 1.4 and 1.5, you simply type the [-] key (not on the numberpad) before typing the value. The first shading technique that you need to learn is that you should offset the shade of walls of a room. To do this, select two opposite directions on your map (i.e. - north and south) and make *all* walls in that direction one shade value (let's use a value of 10 for now). Now you should give *all* the walls in the opposite two directions (i.e. - east and west) a shade somewhat lighter or darker than the previous shading (let's use a value of 15 for now). This allows your eye to find the corner of the room much faster, and it gives a much more realistic look to any room (if you make joined walls the same shade, finding the corner can be quite a difficult thing to do). This technique should be used in *every* room and passageway in your level, and it should remain consistent (i.e. - if you made all east-west walls the lighter value, then all east-west walls should remain lighter in the future). If you have a angled wall (i.e. - it doesn't run perfectly north-south or east-west) use a value somewhere between your east-west and north-south values. It is a good idea to set this type of shading before setting the next type. The second technique that you need to learn is that light travels in a straight line. The light from a ceiling light should make straight shadows when passing past a corner of a hallway or other object. Remember to light your areas according to the positioning of your lights. This is the second type of shading you should set. The third technique is ambient shading. Although light travels in a straight line, there is some ambience. Use multiple sectors for shading, making the sectors farther from the light source incrementally darker. Although this type of shading isn't needed, it definitely makes for some cool looking effects (gradual shading effects make some scenes look excellent - especially at a high resolution). 3.4 Advanced Features Build has a few features that can be very useful to a learning Builder, and make the Building process *much* faster to complete. 3.4.1 Splitting Walls Splitting walls is quite easy to do. In 2D mode, simply point at the place on the wall where you would like to insert a vertex and press the [INS] key. That's all you have to do! Easy, huh? 3.4.2 Resizing and Moving Sectors Another nice feature of Build is the ability to resize and move sectors. To resize a sector, simply move each vertex to the place you wish them to be. To select multiple vertices to move at the same time, hold the [RIGHT SHIFT] key down, and move the box (you'll see it appear when you move the mouse) over the desired vertices. Now moving one of these vertices will also move the other selected vertices! To move a sector, hold down the [RIGHT ALT] key and, again, drag the mouse over the desired sector. Now, release the [RIGHT ALT] key and move the sector with the mouse. Press the [RIGHT ALT] key one last time to deselect the sector once you have successfully moved it. 3.4.3 Joining Sectors Joining sectors is a useful feature when you don't want a sector to be split up into individual (red lined) sectors. In 2D mode, simply press the [J] key in the first sector you wish to join (this is the sector from which the properties (height, shade, etc.) will be taken). Then press the [J] key again on the second, adjacent sector. There you go - No more red line! 3.4.4 Deleting Sectors Deleting sectors is also an easy thing to do. Simply move the mouse into the sector you wish to delete, and press the [CTRL]+[DEL] keys to delete the sector. Be warned that there is no undo feature in Build, so make sure you know *exactly* what you are doing before using this command. A quick save of the level before using this command wouldn't hurt. 3.4.5 Copying and Pasting Sectors Copying sectors can make Building go very fast. You can copy sectors to the current level, or even to another level! To copy sectors, hold down the [RIGHT ALT] key in 2D mode and move the box (you'll see it appear when you move the mouse) over the desired sectors. Then release the [RIGHT ALT] key. Once the sectors are selected (they will flash green), click and hold the left mouse button (be careful not to move the selected sectors) and press the [INSERT] key. Keeping the left mouse button down, move this set of sectors (you will see that they have been copied) to the desired location in your level. Press the [RIGHT ALT] key again to deselect them. To copy sectors from one level to another, simply select the desired sectors (as stated above) and press the [INSERT] key (again, just like before). Now, while the sectors are still selected (they should still be flashing green), load another level. The selected sectors should appear in your level, and you can move them to the desired location. Pressing the [RIGHT ALT] key will then deselect the sectors. 3.5 Completing this Map You are now through the basic parts of editing. The next section goes into detail on making every effect known in Duke Nukem 3D (there are even several effects not used in the game itself that people have invented). To run your map, simply type the following at the command prompt: duke3d -map [mapname].map [mapname] is the name of the map you have just created. Run your map and see the fruits of your labor - Welcome to the world of Build! ================================== SECTION 4 - MAKING ALL THE EFFECTS ================================== ---------------- 4.0 INTRODUCTION ---------------- 4.0.1 Introduction This section of the FAQ covers every known effect available to the map designer. Due to the number of effects available, this section is quite lengthy. The tutorial map is divided into sections, so look at the "Map Name" section of each how-to to find out which map and section the effect is shown in. --------- 4.1 DOORS --------- 4.1.1 Doom Type Doors Map Name: TUTORIAL.MAP (ROOM 1-A) This how-to explains how to make one of the most common doors found in the game: "Doom" doors. These types of doors rise from the floor into the ceiling, and are quite easy to make. STEP 1: Draw your door sector in 2D mode. Move the pointer over the door sector, and give the door sector a lotag of 20 (press the [T] key when the mouse pointer is inside the door sector). STEP 2: Enter into 3D mode and give the door frame (the walls of the door sector) some nice textures. Move the pointer over each wall and press the [O] (the letter, not the number zero) key. This will prevent the walls from "moving" with the door as it travels (don't press the [O] key and see what happens - it's very unrealistic). STEP 3: Now enter into 3-D mode, and lower the ceiling of the door sector all the way to the floor. Then texture the door itself. 4.1.2 Adding Sounds to Doors Map Name: TUTORIAL.MAP (ROOMS 1-A through 1-I) To add sound effects to a door (the sound of the door opening and closing) follow these simple steps: STEP 1: Place one music and sound effect sprite (#5) in the door sector. STEP 2: Give the music and sound effects sprite a lotag value equal to the sound you wish to play. Values of 166 through 168 are good values, but use what you want (anything other than a door sound isn't very realistic however). A listing of sound effects by both tag number and sound category can be downloaded at Map FAQ Central (see the very top of this FAQ for the URL). 4.1.3 Reversed Doom Type Doors Map Name: TUTORIAL.MAP (ROOM 1-B) This how-to explains how to make the reversed version of the Doom Type door. This type of door lowers from the ceiling into the floor, and is quite easy to make. STEP 1: Draw your door sector in 2D mode. Move the pointer over the door sector, and give the door sector a lotag of 21 (press the [T] key when the mouse pointer is inside the door sector). STEP 2: Now enter into 3-D mode, and raise the floor of the door sector all the way to the ceiling. Then texture the door itself. 4.1.4 Splitting Doom Doors Map Name: TUTORIAL.MAP (ROOM 1-C) This type of door splits in the middle horizontally, with the top half rising to the ceiling and the lower half lowering to the floor. These doors are constructed exactly as regular Doom-Type doors, with the following changes: 1. The sector lotag should be 22. 2. The floor and ceiling of the door sector should meet in the middle of the door itself. NOTE: The height of the door should be an even value, to ensure that the top or bottom half does not need to travel farther than it should (which can cause some problems). The value you should use is the number of times that you must press the PGUP key to raise the ceiling from floor height to the height you want. 4.1.5 Swinging Doors Map Name: TUTORIAL.MAP (ROOM 1-D) Swinging doors are possibly the coolest and most useful doors in Duke Nukem 3D, but they can be a pain to construct. Follow these steps, however, and you should be able to make a working swinging door. STEP 1: Create the room and the hallway that the door will separate. The ceiling height of the hallway should be the height of the door. The hallway and the room should be two separate sectors (there should be a red line between these two sectors in 2D mode). STEP 2: Create the door sector on the side of the red line that the door will swing in to. This sector should be valid player space. In 3D mode, raise the floor of this sector to the height that you want the door to be (or you can lower the ceiling; whichever you prefer). NOTE 1: The door sector should be made within another, valid sector. STEP 3: Now move the door sector to where it should be. One side of the door should be in the exact position as the red line separating the hallway from the room (i.e. - two of the vertices of the door should sit exactly on top of the two vertices of the hallway and room junction). NOTE 2: The door should be in the sector in which it will swing into. If it is not, some big problems can occur. STEP 4: Give the door sector a sector lotag value of 23. STEP 5: Place one sector effector sprite in the door. Give this sprite a lotag value of 11, and a unique hitag value. Now you need to move the sector effector at the pivot point for the door. Turn off the grid lock feature by pressing the [L] key in 2D mode. Move the sector effector sprite as close to the pivoting corner of the door as you can, but *do not* place this sprite on the corner itself. Zoom in as far as you can possibly go in 2D mode to see just where you are putting it. STEP 6: Now you need to set the angle for the door. If you want the door to swing in a clockwise direction, point the sector effector up. If you want the door to swing in a counter-clockwise direction, point the sector effector down. STEP 7: Place one Music&SFX sprite in the door. Give this sprite a lotag value of 165. You are now finished! Take a look at the tutorial map if you don't quite understand. NOTE 3: Swinging doors will not work correctly in any of the following situations: * If the floor or ceiling is sloped. * If the door swings into another sector. * If the door is not a valid player space sector. 4.1.6 Swinging Glass Doors Map Name: TUTORIAL.MAP (ROOM 1-E) Swinging glass doors look great and add a nice touch to virtually any level. They aren't easy, however, so follow these instructions very carefully. STEP 1: Create a swinging door (see the swinging door how-to) but do not raise the door sector up from the floor. STEP 2: At the end of the door farthest from the pivot point (or farthest from the sector effector with lotag 11 - same thing) create a small square sector inside of the door. This sector should *NOT* be valid player space (i.e. - the walls of this sector should be white). STEP 3: Mask the outermost red line of the door itself, changing the mask texture to the glass texture. The [M] key in 3D mode creates a masked wall. Press the [B] and [H] keys on this mask. A point can be inserted on this line (before masking it) if desired, in order to prevent the glass texture from being as long as the door. STEP 4: Lower the ceiling of the door sector a few [PGDN] units (2 works nicely) and raise the floor of the door sector a few [PGUP] units (again, 2 works nicely). You're done! Take a look at the tutorial map if you don't quite understand. 4.1.7 Problems and Fixes with Swinging Doors Map Name: NONE The following is a list of common problems and their solutions for working with swinging doors. PROBLEM 1: My door disappears when it opens! What do I do? SOLUTION 1: The problem here is that a corner of your door is actually going *outside* of your map (into nothingness) and is causing your door to disappear. Either move the sector effector sprite with the lotag of 11 closer to the vertex of the door, or angle the corner that travels outside the map. Also make sure that you are not building a door that swings in sectors of different height or sloped sectors. PROBLEM 2: My door swings in the wrong direction! How do I fix this? SOLUTION 2: You need to fix the direction that the sector-effector is pointing. To make the door swing clockwise, the sector- effector needs to point upwards. To make it swing counter clockwise, you need to point the SE down. PROBLEM 3: When I make my door, I try to move it and it loses it's unique sector lotag/hitag. SOLUTION 3: The 'door' sector has to be created inside the sector where it will swing into. Do not create it and then move it into another sector or the it will lose it's unique lotag/hitag. PROBLEM 4: When I open my door, the walls move with it! How do I fix this? SOLUTION 4: When you create the 'door' sector, it should be a free- standing sector. In other words the vertices should NOT be connected to any other vertices. AFTER the door sector has been made, you may move it (to the door hole) and now the vertices may overlap because they will not connect now. Be sure of this or the walls will be pulled along with the door! PROBLEM 5: When I open my swinging door, the door kills me! How can I stop this from happening? SOLUTION 5: Make sure that the sector effector sprite is actually INSIDE of the sector, and NOT on a line of the sector. PROBLEM 6: When I open one swinging door, a completely different door opens up. What's the deal? SOLUTION 6: The hitags for your sector effector sprites are the same. You must use UNIQUE hitags for doors that you want to open separately. 4.1.8 Sliding Star Trek Doors Map Name: ADVANCED.MAP (ROOM 1-A) Sliding Star Trek doors are difficult to make, but they are a cool addition to most any level. Because this type of door is so complex to make, a step by step construction has been placed in the tutorial map. Take a look at it to see what to do, and even copy the sectors if you want. NOTE 1: The texture of the door will be "squished" when the door is opened. There is no way around this problem. NOTE 2: The door sound will sound twice for some reason. Again, there is no way around this problem. 4.1.9 Splitting Star Trek Doors Map Name: ADVANCED.MAP (ROOM 1-B) This is a more complex version of the sliding star trek door, and it is by far one of the coolest doors in the game. STEP 1: Create a sliding star trek door. STEP 2: Raise the floor of this door about halfway up, and lower the ceiling about halfway down (the ceiling and floor should meet in the middle of the door). STEP 3: Change the door sector lotag value from 9 to a value of 26. You're all done! Take a look at the tutorial example if you don't quite understand. 4.1.10 Teeth Doors Map Name: TUTORIAL.MAP (ROOM 1-F) This door never appears in the game (it has a few minor problems) but it is very cool. STEP 1: Create a sector for the door, and two square sectors inside the door sector (for the teeth of the door). All these sectors should be valid player space. STEP 2: Lower the teeth sector floors down until you can no longer see the floor (even when looking down at an angle). STEP 3: Give the door sector a sector lotag value of 29 and a unique sector hitag value. STEP 4: Place one sector effect in each tooth sector. Give each sector effector sprite a sprite lotag value of 22. Also give each sector effector sprite a sprite hitag value equal to the door sector hitag value. You're done! Look at the tutorial map if you don't quite understand. NOTE 1: This door must start in the open position for it to properly work. 4.1.11 Another Way To Do Teeth Doors Map Name: TDOOR2.MAP This is an effect created by Jaap Menist. The how-to text file can be found in the zip file that this FAQ came in (the how-to is very long). The name for this file is TDOOR2.TXT. This is a very difficult door to construct, but it ends in a very cool effect. NOTE: Using this method, the door can start in the closed position. 4.1.12 Sliding Doors Map Name: ADVANCED.MAP (ROOM 1-C) Again, due to the extremely difficult task of explaining this how-to, I have provided a step by step example in the tutorial map, showing how to make this door. Just take a look at the example and it should make sense (it goes step by step in the building process). 4.1.13 See Through Sliding Doors Map Name: STHRUSLD.MAP This is an effect created by Jaap Menist. The how-to text file can be found in the zip file that this FAQ came in (the how-to is very long). The name for this file is STHRUSLD.TXT. This is a very difficult door to construct, but it ends in a very cool effect. 4.1.14 Rotating Subway Doors Map Name: TUTORIAL.MAP (ROOM 1-G) This type of door constantly revolves in a circle, much like the doors you find in an airport or subway station. STEP 1: Create your door sector to be rotated. The sector should be valid player space. Raise the floor of the door up to the ceiling (or lower the ceiling to the floor). STEP 2: Place one sector effector sprite in the middle of the door sector. Give this sprite a lotag value of 1. Give it a unique hitag value. If you want this door to rotate counter-clockwise, angle the sprite straight down. If you want the door to rotate in a clockwise manner, angle the sprite straight up. STEP 3: Place one sector effector sprite somewhere else in the door sector. Give this sprite the same hitag value you gave the sprite in step 2. Leave the lotag value as 0. Change the angle of this sprite to point straight down. You are now finished - take a look at the tutorial map if you don't quite understand. NOTE 1: Several versions of this door can be made. Look at the tutorial example to see the different versions in action. 4.1.15 Making Doors Auto Close Map Name: TUTORIAL.MAP (ROOM 1-H) To make any door auto-close, place one sector effector sprite in the door sector, and give it a lotag value of 10. The hitag value is the delay that the door will wait before it closes. A value of 32 is one second, 64 is two seconds, and so on. 4.1.16 Making Locked Doors Map Name: TUTORIAL.MAP (ROOM 1-I) To make a locked door (that must be opened with a keycard) follow these steps: STEP 1: Place an access pad sprite (#130 or #170) somewhere in your map. Give it a hitag value of 212. Give it a unique lotag value. STEP 2: Place an ActivatorLocked sprite (#4) in the door sector. Give this sprite the same lotag value you gave the access pad. STEP 3: Place a key sprite (#60) somewhere in your level. STEP 4: Change the palette of *both* the key and the access pad (use [ALT]+[P] in 3D mode) to the following values to make one of the 3 different kinds of keys and locks: 0 = Blue 21 = Red 23 = Yellow -------------------- 4.2 PARALLAXED SKIES -------------------- 4.2.1 Correctly Parallaxed Skies Map Name: TUTORIAL.MAP (ROOM 2-A) Parallaxed skies present the player with the feeling of being outside, but can be problematic if not constructed correctly. Follow these simple steps: STEP 1: Change the texture of the ceiling or floor that you wish to parallax. STEP 2: Move the mouse cursor over the area you want parallaxed and press the [P] key. To prevent the space textures from killing you when you walk under them, change the palette value of the parallaxed floor or ceiling (or both) to 3. There are 3 types of parallaxing. Press the [CTRL]+[P] key combination to cycle through the types of parallaxing. To make the walls look parallaxed (used in the space levels to make it look as if Duke looks into space), create several sectors along the sides of the main parallaxed sector, change the floor and ceiling texture to the same texture that the main sector has, and parallax both the floor and ceiling of these side sectors. Then lower the ceiling down to the floor. Take a look at the tutorial map if you do not quite understand. 4.2.2 Problems And Fixes With Parallaxing Map Name: NONE PROBLEM 1: My sky is screwed up! It shows one picture, and then to the side of that another, and another, etc. What's the deal? SOLUTION 1: The textures that use more than one frame (such as the space texture) usually are the cause of this problem. For example, the space texture uses six textures; the first texture and five after that. When you use a texture such as this *anywhere* in your level, it becomes impossible to have one (and only one) texture parallaxed elsewhere in your map. So suppose I have the space texture somewhere in my level, and I want to parallax a texture that only has one frame. If I try to parallax this second texture, it will show the texture I'm using, the frame after that (a sprite let's say), the frame after that, etc. The solution for this is basically this: use the same texture everywhere. If you want to just use a one frame texture, you must change *all* the multiple frame sky textures to single frame sky textures. PROBLEM 2: I'm not using multiple frame sky textures, and it still looks weird. What am I doing wrong? SOLUTION 2: This problem occasionally occurs upon first parallaxing a sector, and can be resolved by saving your level, exiting from Build, and then reloading your level. -------------------- 4.3 LIGHTING EFFECTS -------------------- 4.3.1 Making Lights Blink Map Name: TUTORIAL.MAP (ROOM 2-B) Blinking lights can add a great mood and sense of environment in any user level. This effect makes lights blink randomly. STEP 1: Create a light sector. This sector can either be in a wall, or a ceiling light sector, but it needs to be a sector. Take a look at the tutorial map to see examples of both types of lighting. STEP 2: Place one sector effector sprite in each sector you want to light up. Give these sprites a lotag value of 4, and a unique hitag value. The hitag value is the flash randomizing number, so use any value you want. STEP 3: Set the shade of the walls, floor, and ceiling near your light to the shade value you want it to be when the lights are off. Then, set the shade of the sector effector sprites to the shade value you want it to be when the lights are on. You set the shade value by pressing the [']+[S] key on the desired wall, ceiling, or floor in 3D mode. You are finished - Look at the tutorial map if you don't quite understand. NOTE 1: You can make colored blinking lights as well. Simply give the sector effector sprites a palette value equal to the color that you want the light to be when flashing. Both the sectors and the sector effector sprites can have different palette values. NOTE 2: This effect can *not* be used with the light switch effect. NOTE 3: To prevent one side of a red line in 2D mode (a 2 sided wall) from being affected by the light effect, give the side of the wall you want to not be affected a wall hitag value of 1. 4.3.2 Making Lights Blink When Shot Map Name: TUTORIAL.MAP (ROOM 2-C) This effect allows you to cause a light to flash randomly once it is broken by the player (by the player shooting the light). NOTE 1: This effect will not *always* work, but it will sometimes. The randomization of this effect prevents this effect from occurring 100% of the time, but it will occasionally work. STEP 1: Create a light sector. This sector can either be in a wall, or a ceiling light sector, but it needs to be a sector. Take a look at the tutorial map to see examples of both types of lighting. If you are constructing a light in a wall, make sure that you lower the ceiling of the light sector to the floor, placing the light texture on the wall face that appears once you lower the sector ceiling to the floor. NOTE 2: The light texture that you use, should be breakable (i.e. - when you shoot the light, the light texture should change to the corresponding broken light texture). STEP 2: If you are creating a ceiling light, give the light sector a unique sector hitag value. If you are creating a wall light, give the red wall that separates the light sector from the wall sector a unique wall lotag value. STEP 3: Place one sector effector sprite in each sector you want to light up. Give these sprites a lotag value of 3. If you are creating a wall light, give the sector effector sprite a hitag value equal to the wall's lotag value. If you are creating a ceiling light, give the sector effector sprite a hitag value equal to the light sector's hitag value. STEP 4: Set the shade of the walls, floor, and ceiling near your light to the shade value you want it to be when the lights are off. Then, set the shade of the sector effector sprites to the shade value you want it to be when the lights are on. You set the shade value by pressing the [']+[S] key on the desired wall, ceiling, or floor in 3D mode. You are finished - Look at the tutorial map if you don't quite understand. NOTE 3: You can make colored blinking lights as well. Simply give the sector effector sprites a palette value equal to the color that you want the light to be when flashing. Both the sectors and the sector effector sprites can have different palette values. NOTE 4: This effect *can* be used with the light switch effect. NOTE 5: To prevent one side of a red line in 2D mode (a 2 sided wall) from being affected by the light effect, give the side of the wall you want to not be affected a wall hitag value of 1. 4.3.3 Open Door & Room Lights Up Map Name: TUTORIAL.MAP (ROOM 2-D) This effect allows rooms to light up when a door is opened (assuming that light would come in the door). STEP 1: Construct the door and the sectors that you wish to light up. STEP 2: Place one sector effector sprite in the door and in each sector that you want to light up. STEP 3: Change the shade of each sector effector to the shade you want the sector it is located in to be when the door is open. Do this by moving the mouse over the sprite, and press the [']+[S] keys in 3D mode. STEP 4: Change the shade of each wall, ceiling, and floor of the sectors you want to light up to the value you want them to be when the door is closed. STEP 5: Give each sector effector sprite a lotag value of 8 and the same, unique hitag value. You are now finished - Take a look at the tutorial map if you don't quite understand. NOTE 1: If you do not wish a certain wall to be lit up by this effect (for example, the door texture itself), simply give the desired wall a wall hitag value of 1. It is easiest to do this in 3D mode. Point at the wall you wish to assign a hitag, and press the [']+[H] key combination. Then enter the value 1, and [ENTER]. This prevents the selected wall from lighting up (a very useful command to use). 4.3.4 Light Switches Map Name: TUTORIAL.MAP (ROOM 2-E) This effect allows you to create a light switch from which the player can toggle a light on or off. STEP 1: Place a switch sprite (#712 is the standard light switch) somewhere in your level. Give this sprite a unique lotag value. STEP 2: Place one sector effector sprite in each sector that will light up when the light is on. The shade of this sprite determines how bright the light will be in that sprite's particular sector when the light is on. STEP 3: The shade of all walls, ceilings, and floors of the sectors to be lit up should be set to the shade they will be when the light is turned off. STEP 4: Give each sector effector sprite a lotag value of 12. Give each sector effector sprite the same hitag value that you gave to the light switch. You are now finished - Take a look at the tutorial map if you don't quite understand. 4.3.5 Colored Lights Map Name: TUTORIAL.MAP (ROOM 2-F) To create colored lights, simply change the palette of the walls, floors, and ceilings you desire to be colored to one of the following values (palette is set in 3D mode by pressing the [ALT]+[P] keys when the mouse is over the desired object to change): 1 = Blue 2 = Red 7 = Yellow 8 = Green NOTE: Yellow lighting seems to only work on white textures. On gray or other colored textures, the light will look rather dull. 4.3.6 Pulsating Lights Map Name: TUTORIAL.MAP (ROOM 2-G) Pulsating lights can be used to create some neat effects (moving lights to name one). STEP 1: Place a Cycler sprite in the sector(s) that you want the light to pulsate in. Change the shade of this sprite to how bright you want the light to be when the light is at its brightest point. STEP 2: Change the shade of the floor to how dark the sector should be when the light is at its darkest point. STEP 3: To change the speed of the light pulsing, simply place one GPSpeed sprite in the same sector as the Cycler sprite. A hitag value for the Cycler and GPSpeed sprites are not needed (as was previously thought to be the case). Now give the GPSpeed sprite a lotag value. This value is how fast or slow the light will pulsate (the higher the value, the faster the light will pulsate). NOTE 1: Here is a great bit of information on the speed of Cycler sprites when combined with GPSpeed sprites (thanks to Keith Tyson for this information). The cycle length (going from bright to dark to bright again) seems to be halved as the GPSpeed lotag value is doubled. Strangely enough, this is the case up to a value of 1023, (a value of 1024 doesn't work). From 1025 to 2047, the above pattern is reversed: As the GPSpeed lotag value gets higher, the cycle length increases. A value of 2048 doesn't work either. A simple conversion indicates that a lotag of 1 will produce roughly one cycle in 120 seconds (quite slow), while a lotag of 1023 will produce roughly 8 cycles per second (quite fast). NOTE 2: Walls with a hitag value of 1 are not affected by the Cycler sprite. NOTE 3: This effect can be used to create the "rotating" lights found in some of the episode 2 levels. Take a look at those levels to see how this is done. ------------------ 4.4 MOVING SECTORS ------------------ 4.4.1 Rotating Sectors (Gears) Map Name: TUTORIAL.MAP (ROOM 2-H) This effect allows you to create a constantly rotating sector, such as the gears found in the registered levels. STEP 1: Create the sector to be rotated. STEP 2: Place one sector effector sprite where you want the pivot point for this sector to be (it is usually placed in the center). Give this sprite a lotag value of 1, and a unique hitag value. Now change the angle of this sprite to one of the following: Up - Sector rotates counter-clockwise Down - Sector rotates clockwise NOTE 1: This pivot point sprite is not required to be inside the sector that will rotate. STEP 3: Place one other sector effector sprite somewhere else in your gear sector. Give this sprite the same unique hitag value that you gave the first sector effector sprite. Leave the lotag value set as 0. Then set the angle of this sector effector sprite. The following angles have the following related functions: Up - All points of sector rotate around pivot point Down - Entire sector rotates around pivot point STEP 4: If you want sprites and the player to rotate with this sector, you must enter 3D mode and press the [R] key on the floor of the sector. This will allow sprites and actors to move with the rotating sector. 4.4.2 Using Rotating Sectors for Doors Map Name: ROTATEDR.MAP Rotating sectors can be used in combination with switches to create a very interesting type of door. The how-to is fairly complicated, so a tutorial map (created by Jack Gutzler AKA Captain Massive) has been included with this package. 4.4.3 Two-Way Trains Map Name: ADVANCED.MAP (ROOM 1-D) Two-way trains are very cool and a great addition to any level. They are, however, quite complex to build. STEP 1: Create the track for the train (it should be straight), the train itself, and two rooms at either end of the track. NOTE 1: The train sector should not be split into multiple sectors. However, the train can include white-walled (non-valid player space) sectors and nested red-lined sectors (take a look at the tutorial map to see exactly what is possible). NOTE 2: The train should be made on the opposite side of the track from which the player will enter first. And the train should not be made right in front of where the player will board it (place the train in the middle of the track for now). STEP 2: Place three switches on the map: one in the train, and the other two in both rooms at either end of the track (i.e. - one in each room). STEP 3: Give all three switch sprites the same, unique lotag value. STEP 4: Place one activator sprite in the train and give it the same lotag value that you gave the switch sprites. STEP 5: Place one sector effector sprite in the train and give it a lotag value of 30. Give this sprite a hitag value of 1 added to the value you gave the switch sprites (so if your switch sprite lotag was 10, the hitag value of this sector effector sprite would be 11). You now must change the angle value for this sprite. Point it in the direction of the track where the train will start from (if your train starts from the left hand side, point the sector effector sprite to the left). STEP 6: Give the train sector a sector lotag value of 31. STEP 7: Place two locator sprites (sprite #6) on your track, one where the train will begin and one where the train will stop. Think of these two sprites as reference sprites. The sector effector sprite that you placed in your train sector is a fixed point on your train. When the train moves from point to point, the fixed sector effector on the train will move over top of the locator sprites. So place these in an appropriate place. Give the locator closest to where the player will first board the train a lotag value of 1 and a hitag value of 1. Do not give the other locator sprite a lotag or hitag value (both should remain at the default value of 0). STEP 8: In 3D mode, press the [R] key on the floor of your train. If your train has a ceiling, do the same thing.1 OPTIONAL STEPS STEP 9: Create door sectors on each end of the track where the player will board and exit the train. They should be regular Doom-type doors. Place one activator sprite in each door sector. Give the activator sprite in the door where the player will first board the train, a lotag value of two more than the switch lotag. For example, if the switch lotag (near the door) was 10, the lotag of this activator sprite would be 12. STEP 10: Give the other activator sprite (in the other door sector) a lotag value of one more than the switch sprite lotag. For example, if the switch lotag was 10, the lotag of this second activator sprite would be 11. STEP 11: Make sure that the door where the player will first board the train is in the closed position. The other door (at the other end of the track) should be open. If this is not set properly, the timing of the doors will be off. 4.4.4 One Car Subways Map Name: ADVANCED.MAP (ROOM 1-E) Subways are not difficult to master, but they do require patience and a great deal of work. But they can be done, and they can be a great addition to any level! STEP 1: Make the track for the subway. For this example we will be making a simple rectangle room. Later on, when you get practice with the Locator sprites, you will be able to have a track with a more realistic look (i.e. - Walls on both sides of the track. Here we are just using an open room which the subway will wander around in). Set your textures to whatever you want. STEP 2: Make a sector off of this room (or anywhere else for that matter) to be a station for the train. Make sure the sector is valid player space, and raise it up from the floor of the track sector in 3D mode (this sector will be higher up than the track). STEP 3: Make one other rectangular sector that will be the subway car itself. Do not make the car right next to the station, as a locator sprite will be needed for that. Raise the car up out of the ground, and make it valid player space. Choose appropriate textures. STEP 4: In 2D mode, put the mouse cursor in the subway car sector and press the [H] key. You now will give that sector a hitag of 1. This number is an indicator for the cars, so if you had a second subway somewhere else on your map, the cars would have a hitag of 2. STEP 5: Now insert a sprite in the subway car sector by pressing [S] in 2D mode. Now go into 3D mode and press [V] on the newly made sprite twice. Change the sprite into a sector-effector sprite. Place the sprite in the center of the car and change the angle of the sprite to be in the direction of the front of the car. The sprite's angle tells the subway in which direction it will go. Press [R] on the floor of the subway (and on the ceiling too if your subway has a ceiling. If it does not have a ceiling, leave it alone) in 3D mode. This makes the floor move with the train. STEP 6: Go into 2D mode and press [ALT]+[T] on the sprite, and enter the value of 6. This gives the sector-effector sprite a lotag of 6 and it makes this car the "engine" of the subway. When you make a multiple car subway, this will be the lead car of the subway. It will pull all of the other cars behind it. STEP 7: Now you must place the locator sprites all over the track. These sprites make the actual 'path' of the train. Place a locator sprite near the station and give it a hitag of 1, and leave the lotag at 0. The hitag of 1 tells the subway that it must stop at this point of the track and wait for five seconds. STEP 8: Now put Locator sprites all around the track. Put the sprites anywhere in your track that you want your train to go. The train will go over all the Locator sprites you put down, so place them in the way you want your train to go. STEP 9: You now must give the Locator sprites lotags that go in numeric order. For example, the Locator that the train will go to, AFTER visiting the station would have a lotag of 1. The next sprite will have a lotag of 2, the next a lotag of 3, and so on. This will continue until you get back to the station locator (the one with the hitag of 1). DO NOT GIVE THE STATION LOCATOR A LOTAG! IT MUST BE LEFT AT 0! Make sure that you make the track for the subway as accurate as possible, as the subway can sometimes disappear. You are all done at this point! 4.4.5 Making Multi-Car Subways Map Name: NONE Multi car subways are just as easy as one car subways, but it requires some work and time. STEP 1: Make the first car, or "engine" of the train by following the instructions in the above how-to. STEP 2: Make several more car sectors behind the engine of the train, make them valid player space, and choose appropriate textures for the car. The train cars should *not* be connected, and there should be some space between the two. When the train turns around a corner, sometimes the train sectors can overlap, causing some strange bugs to appear. So don't put them too close. Also make sure that the cars are raised out of the ground to the appropriate height (whatever you want it to be). STEP 3: Give the car sectors a hitag of 1 (not necessary, but it is if you have more than one subway on your map. If you had a second subway, the cars hitag would be 2, and so on). STEP 4: Put a sector effector sprite in the cars of the train and give them a lotag of 14, which means that these cars will follow the "engine" of the train. STEP 5: You're done (the path for the train should have already been made, as you constructed that in the first how-to). 4.4.6 Notes on Subways Map Name: NONE Here is a short list of notes that might make your subway making problems disappear. Many problems can be solved with some of these notes, so read on! 1. The locators should _all_ be in the same sector (the track). It is not advised to split up the track sector, but if you must do it make sure the locators are all in the same sector. 2. The pixel height (height between floor and ceiling) of the train has to have a maximum of 104 in order to run you over. If the pixel height is more than this the train will pass through you instead of killing you (weird eh?). 3. A train with cars behind it will travel slightly faster than a single train! So be aware that when you put 2 trains on the same track, after quite a while, they will have caught up with each other (I actually did this). -------------------------- 4.5 GENERAL SECTOR EFFECTS -------------------------- 4.5.1 Earthquakes Map Name: TUTORIAL.MAP (ROOM 2-I) Earthquakes are a neat effect, and easy to make. STEP 1: Create the sectors that will be altered during the earthquake (if you want any). Make these sectors look as if the earthquake has already happened. STEP 2: Place one sector effector sprite in each sector that will be affected by the earthquake. Give each sprite a lotag value of 2. STEP 3: Place one Masterswitch sprite in each sector that will be affected by the earthquake. Give each of these sprites the same, unique lotag value. STEP 4: Raise the sector effector sprites and the Masterswitch sprites to the height that you want the affected sectors to be before the earthquake. If you have a sloped sector, place the sprites on the sector's axis line. STEP 5: Place one Touchplate sprite in the sector that you want to trigger the earthquake with. Give it the same lotag value that you gave to the Masterswitch sprites. You are now finished - Take a look at the tutorial map if you still don't understand. NOTE 1: To make the earthquake spawn scraps of rock and metal, simply place sector effector sprites where you want the scraps to fly from. Give each sprite a lotag value of 33. Then raise the sprite to the height that you want the scraps to be spawned from (it doesn't matter what that height is). 4.5.2 Rooms Over Rooms Map Name: TUTORIAL.MAP (ROOM 3-A) Making rooms over rooms can be a complex job, but is quite simple to do. A few simple rules need to be properly followed when constructing this effect, and if done properly, this effect can create some cool architectural layouts. The first rule is simply this: The ceiling of the lower level must be lower than the floor of the upper level. If this isn't the case, your level will show some strange anomalies associated with level over levels, and some undesired results will show up. Another rule also must be followed when constructing your level over level sectors. You cannot "see" the lower level from the upper level, and you cannot "see" the upper level from the lower level. This means that you could not make a 2 level house and have a window on the bottom floor and a window directly above it on the top floor. You should also remember that the vertices of the upper level should not connect to any of the walls on the lower level. The levels must be completely independent of each other. Take a look at the tutorial map to see just how it works. It is possible to have many layers of sectors over sectors, just make sure you keep track of them in Build (it can become quite complex). 4.5.3 Stretching Sectors Map Name: TUTORIAL.MAP (ROOM 3-B) This effect will stretch a sector in the direction you desire. STEP 1: Create the sector that will be stretched (it should be a valid player sector). STEP 2: Give the sector a sector lotag value of 27. STEP 3: Place 3 sprites in this sector: one activator, one sector effector, and one GPSpeed sprite. STEP 4: Place a trigger (Touchplate or switch) somewhere in your level, and give it a unique lotag value. STEP 5: Give the activator sprite a lotag value equal to the switch lotag value. Give the sector effector a hitag value equal to the switch lotag value. Also give this sector effector sprite a lotag value of 20. Point the sector effector sprite in the direction that you want to stretch the sector. Now give the GPSpeed sprite a lotag value equal to the distance that you want the sector to stretch (a value of 1024 is equal to the largest grid square in Build). 4.5.4 Conveyor Belts & Water Current Map Name: TUTORIAL.MAP (ROOM 3-C) This effect is used to create conveyor belts and water currents. STEP 1: Create the conveyor belt sector(s). STEP 2: Place one sector effector sprite in each sector, and change the angle of the sprite to the direction that you want the movement to go. Give the sector effector sprites a sprite lotag value of 24. NOTE 1: The floor texture may need to be flipped (with the [F] key) or placed in relative alignment (with the [R] key) if you are using an animated texture (so that the texture animates in the proper direction). NOTE 2: To make the movement of the sectors go faster, simply place one GPSPEED sprite in each sector, giving it a sprite lotag value of the speed you want it to travel (higher numbers mean faster speeds - 64 and 128 are common values). NOTE 3: To create a water current, follow the same steps above, and simply give each sector a sector lotag value of 1. NOTE 4: To create switch operated conveyor belts, place a switch in your level and give it a unique lotag value. Give the sector effector sprite (with the lotag value of 24) the same hitag value as the switch lotag value. 4.5.5 Making Curtains Draw Back Map Name: TUTORIAL.MAP (ROOM 3-D) This effect makes curtains draw back when a switch is flipped (much like in the movie theater in episode 1, level 1). STEP 1: Create your curtain sector. It should be valid player space. For best visual effects, it is advised to lower the ceiling of the sector almost, but not all the way, down to the floor (look at the tutorial map to see how it should look). Give the curtain sector a sector lotag value of 27. STEP 2: Place a switch sprite somewhere in your level, and give it a unique lotag value. STEP 3: Place one sector effector sprite, one GPSpeed sprite, and one activator sprite in the curtain sector. STEP 3: Give the sector effector sprite a lotag value of 20, and a hitag value equal to the switch lotag value. STEP 4: Give the activator sprite a lotag value equal to the switch lotag value. STEP 5: Give the GPSpeed sprite a lotag value equal to the distance that the curtain sector will travel. A value of 1024 is equal to the largest grid square in Build. STEP 6: If the ceiling of your curtain sector does not touch the floor of the sector, make sure you set the floor texture to relative alignment (by pressing the [R] key in 3D mode on the floor). NOTE 1: Make sure that your curtain sector does not travel into the wall it is joined to, or a hall of mirrors (HOM) effect will occur. 4.5.6 The Pool Table Map Name: NONE The pool table (as found in episode 1, level 2) is a great effect to add to almost any level. It is simply 2 rectangular sectors, raised to a realistic height. The pocket sprite (#903) is placed on the table in the places that the pockets are found, and the ball sprites (#901 and #902) are also placed on the table. No special tags or other values are needed (just make sure to set the palette of the pool balls to different values, so the balls don't all look the same). 4.5.7 Fish Tanks Map Name: NONE The fish tank is quite easy to make. Simply create the tank itself (which is comprised of sectors and masked walls (with the glass texture set on them)), and give the water sector a sector lotag of 2. Then place the appropriate sprites (sharks, underwater plants, etc.) in the tank. NOTE: Sharks can bite the player through the glass. --------- 4.6 WATER --------- 4.6.1 Submergible Water Map Name: TUTORIAL.MAP (ROOM 3-E) Submergible water is a neat effect, and easy to make. STEP 1: Create your "source sector" (i.e. - the above water sector). Give this sector a sector lotag value of 1 (by pressing the [T] key inside the sector in 2D mode and entering in the value). STEP 2: Create a "destination sector" (i.e. - the below water sector). Give this sector a sector lotag value of 2. NOTE 1: The destination sector should be *exactly* the same size and shape as the source sector. If it is not, the effect will not work properly. STEP 3: Place one sector effector sprite in the source sector. Also, place one sector effector sprite in the destination sector. The sprite in the destination sector must be in the *exact* same place as it is in the source sector. STEP 4: Give both sprites a lotag value of 7. Then give both sprites the same, unique hitag value. You're done - Take a look at the tutorial map if you don't quite understand. 4.6.2 Sloped Water Surfaces Map Name: TUTORIAL.MAP (ROOM 3-F) To make it possible to submerge into an underwater area with a sloped floor, simply place the sector effector sprite in the underwater sector near the lowest point (the axis line) of that sector. Do not place the sector effector sprite on the axis line itself. 4.6.3 Swimming in Slime Map Name: TUTORIAL.MAP (ROOM 3-G) To create an underwater area resembling slime, simply give the sector effector sprite in the underwater sector a palette value of 8. This is done by pressing the [ALT]+[P] keys on the sprite in 3D mode. 4.6.4 Making Waves Map Name: TUTORIAL.MAP (ROOM 3-H) To have waves work properly, you must follow a preset rule. This rule isn't too complex, but it must be followed. RULE 1: The wave sector(s) must be four-sided. If they are not, the wave will not work correctly. STEP 1: Create several four-sided sectors (side by side - they should share a red line with their adjacent sector). Lower these sectors so that they are in their lowest position. Give each sector a sector lotag value of 1. NOTE 1: If you want the waves to be sloped, remember to set your first wall on these sectors. The first wall should be the same on all of the sectors for it to look right. STEP 2: Place one sector effector sprite in each sector that you created. Give each sprite a lotag value of 29. Then give each sprite any hitag value between 0 and 2047. This hitag value is the starting height of the wave. STEP 3: Place one GPSpeed sprite in each sector, and give it any lotag value between 0 and 2047. This value is the height of the wave after it starts. NOTE 2: If the waves are too high, Duke will not be able to stay afloat (provided that the sector is submergible). NOTE 3: Wave sectors can be made into submergible sectors by following the standard guidelines for submergible water. 4.6.5 The Rising Water Effect Map Name: TUTORIAL.MAP (ROOM 3-I) This interesting effect simulates water rushing into an area and slowly rising (as it would realistically do). STEP 1: Create a submergible water area (one above water and one below water sector). See the submergible water how-to for the instructions on the construction of this effect. STEP 2: Create a sector that the player will pass through, and place one Touchplate sprite in this sector. Give this sprite a hitag value of 1 and a unique lotag value. STEP 3: For the "source sector" (the above-the-water sector), place the following sprites: 1 sector effector, 1 Masterswitch, and 1 GPSpeed. NOTE 1: The GPSpeed sprite is purely optional, but is used in slowing the rising effect of the water. STEP 4: Give the sector effector sprite a lotag of 31, and a hitag value equal to the Touchplate lotag value. The angle of this sprite should also face upwards. STEP 5: Give the Masterswitch sprite a lotag value equal to the Touchplate lotag value. STEP 6: Give the GPSpeed sprite any lotag value you want (the higher the number, the faster the water rises; the lower the number, the slower the water rises). STEP 7: The "above-the-water" sector should look as if the water has not yet risen. Raise the sector effector sprite (with the lotag of 31) to the height that you want the water to rise to (the water will rise to the bottom of the sector effector sprite). STEP 8: Place the following sprites in the "under-the-water" sector: 1 sector effector sprite, 1 Masterswitch sprite, and 1 GPSpeed sprite. NOTE 2: Again, the GPSpeed sprite is purely optional, but is used in slowing the rising effect of the water. The rate for this sprite should also be the exact same as in the "above-the-water" sector. STEP 9: Make sure that the underwater sector looks as if the water has already risen. NOTE 3: It is best if the ceiling of this sector is exactly as high as the rising height of the floor in the "above-the-water" sector. STEP 10: Give the sector effector sprite you placed in step 8 a lotag value of 32, and leave the hitag value as 0. The angle of this sprite should be down, and this sprite should be raised to the height that you want the water in this sector to *start* at. STEP 11: Give the Masterswitch sprite placed in step 8 the same lotag value as the Touchplate lotag value. STEP 12: Give the GPSpeed sprite any lotag value you want (the higher the number, the faster the water rises; the lower the number, the slower the water rises). STEP 13: Enter 3D mode while in the "under-the-water" sector and press the [O] (the letter o, not the number zero) key on all the walls in this sector. If you do not do this, the effect will look rather unrealistic. You are now finished - take a look at the tutorial map if you do not understand. 4.6.6 Level Over Level Water Trick Map Name: TUTORIAL.MAP (ROOM 4-A) This is an extremely cool effect, and was originally designed by Ben Roffelsen. This effect consists of two individual how-tos, joined together in an interesting way. Using level over level techniques and submergible water, a "true submergible water effect" can be constructed (i.e. - when you look at the map in the game, and you submerge into the water, you will not 'teleport' to another sector, but will appear as if you are still in the same area (which you are)). Read through this entire how-to before constructing this effect. Some things you might want to consider are towards the end of this how-to. STEP 1: Construct the submergible water effect (one above-water sector and one below-water sector). These two sectors should be the exact same size and shape. NOTE 1: The floor of the above-water sector should be higher than the ceiling of the below-water sector. If this rule is not followed, this effect will not work. STEP 2: Select the above-water sector (using the right [ALT] key and dragging with the mouse pointer to form the selection box). Turn off grid lock by pressing the [G] key. Move the selected sector over the below-water sector. Make sure that the vertices of the above-water sector are as close as they can be without being directly on top of the vertices of the below-water sector. NOTE 2: Turning the grid lock off is required. If the vertices of the above-water sector are exactly where the vertices for the below- water sector are, the sectors will join, and the whole construction will be ruined (you'll have to start over). STEP 3: Now create a passage from the lower level (where the below-water sector is located) to the upper level (where the above-water sector is located). Take a look at the tutorial map to see how I did it. NOTE 3: You may want to create the passage before moving the above-water sector. This may make it easier to connect the passage with another part of your level. You are now complete. Take a look at the tutorial map to see exactly how this effect was created. 4.6.7 Timed Underwater Airlocks (Complex) Map Name: AIRLOCK.MAP Due to the complexity of this effect, I have only provided this effect as a tutorial map. The map was created by Gijs de Vries, and uses a two-way train for timing. The map shouldn't be too hard to pull apart. 4.6.8 Rising Water on Sloped Surfaces (Complex) Map Name: SLOPEWTR.MAP Due to the complexity of this effect, I have only provided this effect as a tutorial map. The map was created by Gijs de Vries. This is an advanced effect, so take your time in pulling it apart. -------------------------- 4.7 WALLS AND WALL EFFECTS -------------------------- 4.7.1 Masked Walls Map Name: NONE To make a masked wall, point the cursor at the general location that you want the mask to be (the mask must be placed on an existing red line somewhere in the level), and press the [M] key. It is advised that you point at the floor and not at the ceiling when placing the masked wall. Now you can change the texture, shade, shift, and most anything else about the mask. Just remember that a masked wall has *two* sides, and both sides must be edited. 4.7.2 One-Way Walls Map Name: NONE One-way walls are just as easy to create as masked walls. Do the exact same thing as you do in the masked walls how-to, this time pressing the [1] key. This time your mask will only have 1 side to edit, not 2. The other side will be invisible, so make sure you have the invisible side on the side you want it to be. The side on which you press the [1] key will be the visible side. 4.7.3 Forcefields and Controlling Them Map Name: TUTORIAL.MAP (ROOM 4-B) Forcefields are an effect that has many uses, but are easy to make. To construct a forcefield, follow these steps: STEP 1: Create a masked wall where you want the forcefield to be. NOTE 1: This mask should not be on a wall where the player can see the wall itself. Doing so causes the wall texture to shift, which makes the effect quite ugly. Create one buffer sector on either side of the forcefield to prevent the player from seeing this problem. Take a look at forcefield #1 in the tutorial map to see this error in action. Then look at forcefields #2 and #3 to see the "buffer sectors" that make the effect non-visible. STEP 2: Change the texture of this mask to one of the following: BIGFORCE - Tile #230 W_FORCEFIELD - Tile #663 NOTE 2: The BIGFORCE tile is used to make forcefields that are invisible during the game, and which do not hurt the player when they player touches them. The W_FORCEFIELD tile is used to make forcefields that flicker (you can see them), and the player does get hurt when they touch the forcefield. Forcefields made with the W_FORCEFIELD texture cannot be made invisible. In the tutorial map, forcefields #1, #2, and #4 are made with the W_FORCEFIELD texture, while forcefield #3 is made with the BIGFORCE texture. STEP 3: While in 3D mode, press the [B] and [H] keys on the masked wall. This makes the masked wall block you and other characters from walking through the wall, and it makes bullets "hit" this wall. STEP 4: Now point at the mask in 3D mode and press the [M] key. The mask will disappear, but all the attributes are left the same. You must do this, so that the forcefields will appear in the game. MAKING THE FORCEFIELD SWITCH OPERATED ------------------------------------- NOTE 1: You should only make forcefields using the W_FORCEFIELD texture operated by a switch. That way you can actually see if the forcefield is on or off. STEP 1: Give the masked wall a unique lotag. STEP 2: Place a switch somewhere in your level and give it the exact same lotag value as the masked wall. 4.7.4 Wall Information Although they seem basic enough, walls have several hidden features that make them a little more complex than generally thought. The first thing that should be mentioned is two sided walls. Two sided walls appear as red lines in 2D mode, and they have two completely separate sides with completely unrelated attributes. If you set the shade of one side of a two sided wall to 10, the other side will still be zero (or whatever the default for that wall was). This also means that two sided walls have four tags: 2 hitags and 2 lotags (1 each for either side). Below is a list of wall tags and what they can do. Hitag = 1 ; Lotag = 0 A hitag of one is a pretty complex subject. When you give a wall a hitag of 1, the wall is EXCLUDED from a certain function or effect. I've only seen this tag used in lighting effects such as flickering lights, flickering lights when shot, and light switches. If you have a sector that is brightened by a light, and you want to exclude a wall in the sector from being bright, give it a hitag of 1. This is particularly effective in using the "open door, room lights up" effect. Use this to force the door to stay dark while the room lights up. This is a quite useful tag. Hitag = 0 ; Lotag = X Giving a wall a lotag value of X (any number you want), in addition to any "doortile" texture, will transform a door into a "switch". An example of this tag can be seen in Episode 1, Level 2, at the entrance to the book store. The revolving door uses a certain sector-effector sprite and a sector tag to make it revolve. This sector effector and sector tag are run by way of an activator. Let's assume that the lotag of the activator is 12. You would give the walls of the door a lotag of 12, so when the player presses space on the door, the sector effector sprite function is called, and the effect takes place. This can be used in many different ways. So what is a "doortile" texture? It's simply a texture with the name doortile appended to it. The available doortile textures are as follows: #150 through #159, #395, #447 through #449, #717, #781, #1102, #1144, #1169, #1178, #1179, and (only in versions 1.4 and 1.5) #4391. ----------- 4.8 MIRRORS ----------- 4.8.1 Mirrors Map Name: MIRRORS.MAP (ROOM #1) Mirrors are basically a one-way wall that uses the mirror texture, which is texture #560. Some funny stuff exists with mirrors, but when made properly, they can be a great addition to any level. STEP 1: Create a one-way wall where you want the mirror to be placed. Remember that one-way walls can only be made on red lines in 2D mode. They are created by pressing the [1] key in 3D mode where you want the mirror to go. Change the texture of this one-way wall to texture #560. If you have created this one-way wall correctly, you will not be able to see through the mirror texture (you will only see a pink background). NOTE 1: This mask should not be on a wall where the player can see the wall itself. Doing so causes the wall texture to shift when the mirror is broken by an explosive weapon, which makes the effect look quite ugly. Create one buffer sector on either side of the mirror to prevent the player from seeing this problem. Take a look at the mirror in the tutorial map to see to see the "buffer sectors" that make the effect non-visible. STEP 2: Create a sector behind the mirror (on the opposite side from which the player will view the mirror), and make it *quite* large. STEP 3: In 3D mode, press the [B] and [H] keys when the mouse pointer is over the mirror. This makes the mirror breakable and it can be hit by Duke's weapons. STEP 4: If you want Duke to say "Damn, I'm looking good" when you press the space bar while looking into the weapon, give the side of the mirror that the player will look into a wall lotag of 252. You can do this in 3D mode, by pressing the [']+[T] key on the mirror texture, and entering the value. Or you can do it in 2D mode by moving the mouse pointer to the side of the mirror the player will be on, and pressing the [ALT]+[T] key (make sure the grid is turned off). You're now done - Take a look at the tutorial map if you don't quite understand. 4.8.2 Problems and Solutions with Mirrors Map Name: NONE PROBLEM : My mirror doesn't show bullet holes when shot. SOLUTION : Make sure you are pressing the [1] key in 3D mode (to make a one-way mask) instead of the [M] key. Also make sure that the hitscan flag (press [H] on the mirror in 3D mode) is set. 4.8.3 Making the Two Way Mirror Map Name: MIRRORS.MAP (ROOM #2) This effect allows a 2 way mirror to be made (i.e. - you can go behind the mirror and look through it to the other side). STEP 1: Create a mirror as described in the mirror how-to. STEP 2: Create two very thin sectors that run parallel with the mirror (one on one side of the mirror, and one on the other side of the mirror). Make sure that these sectors are very thin, because they will contain the "Hall of Mirrors" effect, and you want this to be as unnoticeable as possible. STEP 3: Create some way to access the area behind the mirror. Now you are finished with the construction. Take a look at the tutorial map if you don't quite understand. --------------- 4.9 TELEPORTERS --------------- 4.9.1 Teleporters Map Name: TUTORIAL.MAP (ROOM 4-C) Teleporters are one of the most popular effects to construct, and are quite easy. STEP 1: Create a sector that the player will start from. This will be known as the "source" sector. STEP 2: Create another sector where the player will exit from. This will be known as the "destination" sector. STEP 3: Place one ST1 sprite in both the source and destination sectors. The angle of these sprites is the angle in which the player will face upon teleporting to that particular sector. Give both sector effector sprites the same, unique hitag value, and a lotag value of 7. NOTE 1: The source and destination sectors do not have to be the exact same size for this effect to work properly. 4.9.2 Sewer Holes & Silent Teleporters Map Name: TUTORIAL.MAP (ROOM 4-D) This effect is the exact same as the regular teleporting effect, with the only exception being that no sounds or animations are made upon teleporting from the source to the destination sectors. We will construct a square sewer hole for this example. STEP 1: Create your source sector and lower the floor down to the point that you cannot see it when looking down (I'm assuming that you are starting on the upper level). STEP 2: Create your destination sector and raise the ceiling up to the point that you cannot see it when looking up. NOTE 1: The source and destination sectors should be *exactly* alike in order for this effect to look its best. STEP 3: Place one sector effector in both the source and destination sectors. Give both sprites the same, unique hitag, and give them both a lotag value of 7. Lower the sector effector in the source sector down to the bottom of the hole (use [CTRL]+[PGDN] to do this quickly). Raise the sector effector in the destination sector to the top of the hole (this time use [CTRL]+[PGUP]). NOTE 2: The angle of the sector effectors does not need to be changed. The player's angle upon entry of the source sector is the same when he exits the destination sector. STEP 4: Raise the sector effector in the source sector up off of the ground. A few [PGUP] units will do fine (5 or 6 seem to work). STEP 5: Lower the sector effector in the destination sector down from the ceiling. A few [PGDN] units will do fine (5 or 6 seem to work). You're finished! Take a look at the tutorial map if you don't quite understand. 4.9.3 One Way Teleporters (Version 1.4 or 1.5 Required) Map Name: ATOMIC.MAP (ROOM #1) One way teleporters are a new effect available in versions 1.4 and 1.5 of Duke Nukem 3D, and they are quite useful. Follow these steps to make this effect work properly: STEP 1: Place one sector effector sprite in the sector that the player will enter *first* (the teleporting sector). Give this sprite a lotag value of 7 and a unique hitag value. STEP 2: Place one sector effector sprite in the sector that the player will teleport to. Give this sprite a lotag value of 23, and a hitag value equal to the sector effector hitag in step 1. The angle of the sprite is the direction the player will face upon being teleported. If you do not want the flash or teleporting sound effects to play when teleported to this second sector effector, change the palette of the sprite to anything above 0. If you do want them to play, leave the palette as 0. 4.9.4 Version 1.3D One Way Teleporters Map Name: TUTORIAL.MAP (ROOM 4-E) This is a way to fool the game into making a one way teleporter in version 1.3d of the game. STEP 1: Create your source teleporting sector. Place one sector effector sprite in this sector, giving it a lotag value of 7 and a unique hitag value. STEP 2: Place one sector effector sprite where you want the player to exit. Give it the same unique hitag as the sector effector sprite in step 1, and give it a lotag value of 7. Then, lower this sprite into the ground until you can no longer see it. Take a look at the tutorial map if you do not understand. --------------------- 4.10 ENDING THE LEVEL --------------------- 4.10.1 Nuke Buttons Map Name: NONE The Nuke Button sprite (#142) is the sprite that you hit to end the current level. Simply place it on a wall and give it a lotag value of 32767. To link a Nuke Button sprite to a secret level, change the palette value of the sprite to 14, and change the lotag value to the level number you want to go to next (if the secret level is level number 9, you would make the lotag value equal to 9). NOTE: Nuke buttons can also use lotag values of 65535 and 65534 to end the current level. 4.10.2 Ending Sectors Map Name: NONE This allows the player to end a level by walking onto a sector (you don't have to press the Nuke Button). Simply give the sector you want the player to end the level on a sector lotag value of 65535 (by pressing [T] on the sector in 2D mode). 4.10.3 Ending Sectors with Messages Map Name: NONE Remember in Episode 1, Level 3 where Duke gets trapped by the aliens and the message "We're gonna fry your ass Nukem!" appears? To create the same effect in your level, simply give the ending sector a lotag value of 65534. The same message as above will appear on screen. Also, give the sector a hitag value of the sound number that you wish to play (when the player walks on this sector). ------------------- 4.11 SWITCH EFFECTS ------------------- 4.11.1 Doors With Switches Map Name: TUTORIAL.MAP (ROOM 4-F) To make a door open by toggling a switch, follow these steps: STEP 1: Make the door itself. STEP 2: Place a switch sprite somewhere in your level, and give it a unique lotag value. STEP 3: Place one activator sprite (#2) in the door sector and give it the same lotag value as the switch. If you only want the switch to work a fixed number of times, give the activator sprite a hitag value equal to the number of times you want the switch to work. NOTE 1: It is strongly advised *not* to make this type of door an auto-closing door. 4.11.2 Combination Door Switches Map Name: TUTORIAL.MAP (ROOM 4-G) To make a door open only when a certain combination of switches is set, follow these steps: STEP 1: Make the door itself. STEP 2: Place one ActivatorLocked sprite in the door sector. Give it a unique lotag value. STEP 3: Place a number of "dipswitch" sprites (sprites #162, #164, #166, and #168) somewhere in your level. Give each sprite the same lotag value you gave the ActivatorLocked sprite. Now give the sprites that need to be "on" in the game a hitag of 1. When these switches are turned to the "on position", the door will then open. 4.11.3 Another Version of Combo. Switches (Version 1.4 or 1.5 Required) Map Name: ATOMIC.MAP (ROOM #2) Another version of Combination switches is available in versions 1.4 and 1.5 of Duke Nukem 3D. The only thing that is different in this version is the sprite that you need to use for the switches. The new sprite is a red shooting target (#4359). Just substitute this sprite for the "dipswitch" sprites used in section 4.54. Then, set the angle of the sprite to the direction that you want the target to "lay down" (the angle should be opposite of the player's viewpoint in the game). Also, make sure that the sprites are flat (i.e. - press the [R] key on each sprite once). NOTE: These sprites should *not* be on a wall, but should be sitting in a sector somewhere (where they can fall over). You can put them on a wall if you want, but it would look rather unrealistic. 4.11.4 Multi-Door Switches Map Name: TUTORIAL.MAP (ROOM 4-H) This is a useful effect for limiting which rooms a player can enter into at the same time. Just follow these simple steps: STEP 1: Make 3 doors and give them appropriate textures and sounds. Make sure that you *DO NOT* place auto-closing sector effector sprites in any of these doors! This can cause some major problems. STEP 2: Place the multi-switch sprite (#146) somewhere in your level, and give it a unique lotag value. STEP 3: Place *two* activator sprites in each door sector (you should have six activator sprites in this effect altogether). You now must give these activator sprites the right tags. The following list should help you in tagging these doors properly. NOTE 1: The letter X in the table below is the unique value you gave the multi-switch sprite in step 2. NOTE 2: The first number below is the hitag value, and the second number is the lotag value. Door 1 Door 2 Door 3 Activator 1 (0,X) (0,X+1) (0,X+2) Activator 2 (0,X+1) (0,X+2) (0,X+3) ---------------- 4.12 C-9 EFFECTS ---------------- 4.12.1 C-9 Canisters (Visible) Map Name: TUTORIAL.MAP (ROOM 5-A) C-9 is what creates the majority of choreographed explosions in Duke Nukem 3D. To create an explosive can, simply place a sprite where you want the can to be. Change it to either the C-9 sprite (#1247), the OOZFILTER sprite (#1079), or the exploding barrel sprite (#1238). If you want to place explosive underwater mines, place the BOUNCEMINE sprite (#940). If you own version 1.4 or 1.5 of Duke Nukem 3D, you can use the GUNPOWDERBARREL (#4360) as well. 4.12.2 Switch Operated Explosions Map Name: NONE This effect allows you to choreograph explosions and set them off via a switch. STEP 1: Place a switch sprite somewhere in your level. This will be where you set off the explosion from. Give the switch sprite a unique lotag value. STEP 2: Place one Masterswitch sprite in *every* sector that you want an explosion to take place in. Give every single Masterswitch sprite the same lotag value that you gave the switch. If you want to create a delay between flipping the switch and the first explosion, give the Masterswitch a hitag value of the delay you wish to have. STEP 3: Place C-9 sprites (#1247) everywhere you want an explosion to take place. You can raise the sprites to where you want, creating some nicely choreographed explosions. NOTE 1: Placing a large number of C-9 sprites can cause your computer to slow drastically if you are running on a slower processor. STEP 4: Shrink each C-9 sprite as far as you can width wise. This can be done by using the [5]+[4] key combination on the *numberpad*. When the sprites shrink no farther, you know that you are as small as you can get. STEP 5: Give every C-9 sprite a hitag value equal to the lotag value that you gave the switch in step 1. STEP 6: Now give each C-9 sprite any lotag value that you want. The lotag value for each C-9 sprite is the delay that the C-9 will wait before exploding. NOTE 2: A lotag value of 0 on the C-9 sprites will cause these sprites to *not* explode. Make sure that the lotag value is greater than 0. NOTE 3: A lotag value of 96 is roughly one second. Experiment to find out what is best for your situation. 4.12.3 Touchplate Activated Explosions Map Name: TUTORIAL.MAP (ROOM 5-A) To create Touchplate activated explosions, follow the exact same procedure in the above section (switch operated explosions). The only change here is that you replace the switch sprite with a Touchplate sprite. 4.12.4 Cracked Walls Map Name: TUTORIAL.MAP (ROOM 5-B, HOLE #1) This effect is what allows the player to launch some sort of explosive at a crack in a wall, generally forming a hole in the wall in which the player can walk through. STEP 1: Create your "hole" sectors where you want the hole to be. They all should be valid player space. You can use as many sectors as you want, but the more sectors you use, the more work you will have to put into this construction. Make this hole look like you want it to look *after* the explosion has occurred. You can tilt the floor and ceiling as much as you want as well. NOTE 1: The floor and ceiling should fit perfectly when lowered together (i.e. - the slope amount for each should be the *exact* same). This is not required, but it certainly makes the effect look better. STEP 2: Place a crack sprite (#546, #547, #548, or #549) on the wall in front of the hole sectors. Give the crack sprite a unique hitag value. NOTE 2: It is recommended to make the crack sprite slightly transparent. This can be done by pressing the [T] key on the sprite while in 3D mode. STEP 3: Place one sector effector sprite in each hole sector. Give each sprite the same hitag value that you gave the crack sprite. Now give each a lotag value of 13. STEP 4: Place C-9 sprites throughout your hole if you want to have explosions when the hole is blown open. If you do not wish to have any explosions take place, skip this step. Shrink each C-9 sprite as far as you can width wise (with the [4]+[5] key combination on the *numberpad*). When the sprites shrink no farther, you know that you are as small as you can get. Give each C-9 sprite the same hitag value that you gave the crack sprite. Now give each C-9 sprite a lotag value equal to the delay that you want the C-9 to have before exploding. STEP 5: You are now completely finished! Take a look at the tutorial map if you do not fully understand. 4.12.5 Fixing The 'Texture Problem' Map Name: TUTORIAL.MAP (ROOM 5-B, HOLE #2) This is a common problem that occurs when making cracked walls and it can make a level look very ugly. The problem is that, when a cracked wall is blown up, the textures above and below the hole misalign. To fix this problem, simply press the [O] (the letter o, not the number zero) key on the misaligned walls in 3D mode. The problem will correct itself, and will be correct in the game. The tutorial map shows the effect with this problem, and without this problem. Note that no aligning is needed on the textures at all. 4.12.6 Making the Ceiling Blow Up (And Enemies Fall From the Sky!) Map Name: TUTORIAL.MAP (ROOM 5-C) First seen in Episode 1, Level 2, this effect is one of the coolest, and one of the most complex effects there is. When constructed correctly, this effect can look *quite* nice. STEP 1: Construct the sector that will explode. Make it look as if the explosion has already taken place. The ceiling for this sector should have a parallaxed sky, and this texture *MUST* appear in at least one other place on the map. If it does not, this effect will not work correctly! If you are not using parallax in your level, simple parallax the ceiling of the sector you will make in step 3. STEP 2: Place one Touchplate sprite in the sector that you want to trigger the explosion from. Do *not* place this Touchplate in the sector that will explode. Give this Touchplate sprite a hitag value of 1 and a unique lotag value. STEP 3: Create a small sector in an area of your map that will never be accessed by the player (i.e. - this sector should be by itself in the corner of your map or somewhere of the sort). In this sector, place one C-9 sprite. Give this C-9 sprite a hitag value equal to the lotag value of the Touchplate, and leave the lotag set as 0. Also place one Masterswitch sprite in this sector. Give this Masterswitch sprite a lotag value equal to the Touchplate lotag value, and leave the hitag value set at 0. STEP 4: Place 2 sector effector sprites in the sector that will explode. Give one of these sprites a lotag value of 33, and leave the hitag set at 0. Then give the other sprite a lotag value of 13 and a hitag equal to the Touchplate lotag value. Raise the sprite with the lotag of 33 as far up as it goes (press [CTRL]+[PGUP] to do this). Raise the sprite with the lotag of 13 to the height of the ceiling of the surrounding sector. This part can be tricky, as you must make the sector effector with lotag of 13 *exactly* as high as the ceiling of the surrounding sector, or it won't look right. NOTE 1: The angle for the sector effector sprite with the lotag of 13 should be straight down. If it is not, this effect will not work properly. STEP 5: Place a few Respawn sprites (#9) in the sector that will explode, giving each a lotag value equal to the Touchplate lotag. Give each a hitag value equal to the sprite number that you wish to spawn. Raise each sprite up to the ceiling level. STEP 6: Place one more sector effector sprite in the sector that will explode and give it a hitag equal to the Touchplate lotag. Also give this sprite a lotag of 8. This simulates the effect of light coming in through the hole, so make sure that the surrounding sector shade and the shade of the exploding sector is darker than 0. Leave the shade of this sprite set at 0 (it isn't required to be left at zero - just as long as the shade is brighter than the surroundings). STEP 7: Place some C-9 sprites in the sector that will explode. Give them a hitag equal to the Touchplate lotag, and a lotag equal to the delay you wish them to wait before exploding. Raise these to any height that you want. Be sure to shrink them all the way width- wise with the [4]+[5] key combination on the numberpad. You are now finished! Take a look at the tutorial map if you do not fully understand. ------------------------------- 4.13 SECTORS THAT RISE AND FALL ------------------------------- 4.13.1 Lifts Map Name: TUTORIAL.MAP (ROOM 5-D) Lifts are what make up most kinds of elevators, and are pretty useful when it comes to level designing. STEP 1: Create your lift sector. NOTE 1: The lift sector must have an adjacent sector that is higher than the lift in its lowest position. So when the lift is all the way down, there must be an adjacent sector whose floor is higher than the lift itself. If this is not the case, the lift will not work properly. STEP 2: Give the lift sector one of the following sector lotag values (by pressing the [T] key while the cursor is over the sector in 2D mode): 16 - Starts in raised position & comes down. Stationary ceiling. 17 - Starts in lowered position & goes up. Stationary ceiling. 18 - Starts in raised position & comes down. Ceiling and floor move together. 19 - Starts in lowered position & goes up. Ceiling and floor move together. STEP 3: For proper elevator sound effects, place one Music&SFX sprite (#5) in the lift sector. Give this sprite a lotag value of 71 and a hitag value of 73. NOTE 2: Lifts can be slowed down by adding a GPSpeed (#10) sprite to the lift sector. The lotag value for this sprite is the speed, with higher values being faster. NOTE 3: Lifts who have a white wall as one side of the lift, and who use sector tags 18 or 19, will cause the texture on the white wall to move with the lift. There is no way around this. 4.13.2 Switch Operated Lifts Map Name: SWLIFT.MAP Lifts can be operated by switches only, which can be quite useful in some cases. It is recommended to take a look at the tutorial map (thanks to Jack Gutzler AKA Captain Massive for this map) to see how things work reliably. STEP 1: Construct your lift. STEP 2: Place one activator sprite (#2) in the lift sector. Give this sprite a unique lotag value. STEP 3: Place one switch somewhere near the elevator. Give this switch sprite the same exact lotag value that you gave the activator. NOTE 1: Only a few switch sprites seem to work with this effect. Take a look at the tutorial map to see which ones work. 4.13.3 Locked Lifts Map Name: TUTORIAL.MAP (ROOM 5-E) Lifts can also be locked, creating some very cool possibilities for puzzles and tricks. STEP 1: Construct your lift. STEP 2: Place one ActivatorLocked sprite (#4) in your lift sector. Give this sprite a unique lotag value. STEP 3: Place a keycard lock sprite somewhere in your level, and give it the same lotag value that you gave the ActivatorLocked sprite. STEP 4: Set the palette of the keycard lock to your desired color. 4.13.4 Elevator Transports Map Name: TUTORIAL.MAP (ROOM 5-F) Elevator transports are a neat way to simulate true level over level, but they can be a pain to get just right. This effect simply warps you from one lift sector to another, making it appear that a true elevator has been used. STEP 1: Construct your elevator sectors. Both sectors must be the *exact* size, shape, and the ceiling must be the *exact* distance from the floor in each sector. Also make sure that your texturing and shading is the same (to make this effect look realistic). STEP 2: Place one sector effector sprite in each elevator sector, and place each sprite in the *exact* same spot of each elevator (the sprite in the first elevator should be in the same position in relation to the elevator sector as the sprite in the second elevator). Give both sprites a lotag value of 17, and give both sprites the same, unique hitag. STEP 3: Change the shade value of the sector effector sprite in the starting elevator (the one that the player will enter first) to any value darker than the other sector effector sprite in the ending elevator. 64 is a good value. STEP 4: Give both elevator sectors a sector lotag value of 15 (by pressing the [T] key in the sector in 2D mode). Now, give the sector that the player will end on a hitag value of 1. You are now finished. Take a look at the tutorial map if you still need some help. 4.13.5 Constructing Destructible Buildings Map Name: TUTORIAL.MAP (ROOM 5-G) This effect is used to create destructible buildings, much like the one in episode 1, level 2. STEP 1: Create the building sectors (that will blow up) and make them look as if the building has already been destroyed. Place one sector- effector sprite, one Masterswitch sprite, and one GPSpeed sprite in each sector that will be affected. STEP 2: Give the GPSpeed a lotag value of how fast you want the building to lower during its destruction (a value of 64 is very common). Give the sector effector sprite a lotag value of 13, and a unique hitag value. Then give the Masterswitch sprite a lotag value equal to the sector effector hitag. STEP 3: Place a switch or Touchplate somewhere in your level. Give it a lotag value equal to the Masterswitch lotag. STEP 4: Place some C-9 sprites around your building, giving each a hitag value equal to the Masterswitch lotag value. Then set a lotag value for each C-9 sprite (this value is the delay before the C-9 sprite will explode). Remember to make the C-9 sprites as skinny as you can in the x direction (use the [4] key on the keypad). NOTE 1: A Masterswitch sprite should be in each sector that a C-9 sprite exists. If this is not the case, the C-9 sprites will not explode. 4.13.6 Crushers (Engine Pistons) Map Name: TUTORIAL.MAP (ROOM 5-H) This effect creates an engine-piston like sector (the ceiling constantly rises and falls to crush the player). STEP 1: Create the crushing sector. The ceiling should be in the uppermost position that it will rise to. STEP 2: Place one sector effector sprite in the crushing sector, and give it a lotag value of 25. The height of the sector effector determines where the crusher will start. NOTE 3: If you want to slow down this effect, simply place one GPSpeed sprite in the crushing sector and give it a lotag value (the speed that you want the crusher to go at). 4.13.7 Making the Ceiling Fall Upon an Explosion Map Name: TUTORIAL.MAP (ROOM 5-I) This effect is not used in the game, and there aren't too many good uses for this effect (it's simply an effect left over from very early versions of Duke Nukem 3D). This effect causes the ceiling to fall down when an explosion occurs in the sector. STEP 1: Create the sector you want to be affected. STEP 2: Place one sector effector sprite in the sector you just created. Give it a lotag value of 19. 4.13.8 Rotating & Rising Sectors Map Name: TUTORIAL.MAP (ROOM 6-A) This effect is used to make some very cool doors and other effects. When activated, this effect will cause the floor of a sector to rise up and rotate 90 degrees at the same time. STEP 1: Create the sector to affect. This sector should be at the lowest point that the sector will ever be. Give this sector a sector lotag value of 30. STEP 2: Place one activator sprite and one sector effector sprite in the sector. Give the activator sprite a unique lotag value. Give the sector effector sprite a hitag value equal to the activator sprite lotag value. Leave the lotag value of this sprite set at 0. Raise the sector effector sprite to the height you want the sector to rise to. STEP 3: Place a switch or Touchplate somewhere in your level. Give it a lotag value equal to the activator lotag. STEP 4: Place one sector effector sprite where you want the rotation point of the affected sector to be (this point can be outside of the sector if you want it to be). Give this sector effector a lotag value of 1, and a hitag value equal to the activator lotag value. 4.13.9 Making Ceilings and Floors Drop Down Map Name: TUTORIAL.MAP (ROOM 6-B) This effect causes ceilings and floors to drop upon activation. STEP 1: Create the sector to be affected. Give this sector a lotag value value of 28. STEP 2: Place 3 sprites in the sector: one sector effector, one activator, and one GPSpeed sprite. If you want to drop the floor, proceed to the floor heading. If you want to drop the ceiling, proceed to the ceiling heading. Dropping Floors --------------- STEP 3: Make the angle of the sector effector sprite point straight down. Give this sprite a lotag value of 21. STEP 4: Give the activator sprite a unique lotag value. Give the GPSpeed sprite a lotag value equal to the rate that you want the floor to fall at. STEP 5: Make sure that the floor of this sector is at the lowest point it will be in the game. Then raise the sector effector sprite to the height that you want this floor to raise up to. STEP 6: Place a switch or Touchplate sprite somewhere in your level. Give this sprite a lotag value equal to the activator sprite lotag. Dropping Ceilings ----------------- STEP 3: Make the angle of the sector effector sprite point straight up. Give this sprite a lotag value of 21. STEP 4: Give the activator sprite a unique lotag value. Give the GPSpeed sprite a lotag value equal to the rate that you want the ceiling to fall at. STEP 5: Make sure that the ceiling of this sector is at the highest point it will be in the game. Then lower the sector effector sprite to the height that you want this ceiling to lower to. STEP 6: Place a switch or Touchplate sprite somewhere in your level. Give this sprite a lotag value equal to the activator sprite lotag. 4.13.10 Incremental Rising and Falling Sectors (Version 1.4 or 1.5 Required) Map Name: ATOMIC (ROOM #3) This effect is used most often in Duke-Tag levels for showing the team score incrementally. What this effect does, however, is raises or lowers a sector incrementally by flipping a switch several times (or toggling some other trigger in the level). STEP 1: Create the sector that will rise or fall when activated, and choose appropriate textures. STEP 2: Place one sector effector sprite in this sector. Give this sprite a lotag of 18 and a hitag equal to the amount of units moved per activation (one unit is equal to 1 [PGUP] or [PGDN] in Build). Now, set the angle for which part of the sector you want to move. Up makes the floor rise or fall, while down makes the ceiling rise or fall. STEP 3: Place a switch (or other trigger) somewhere in your level, and give it a unique lotag. STEP 4: Place one activator sprite in the rising (or falling) sector and give it the exact same lotag as the switch. STEP 5: Now, you must set the palette of the sector effector sprite you made in step 2. A value of 0 starts the sector at the height you set it at in Build, and it rises or falls to the sector effector's height. Anything other than 0 starts the sector at the height of the sector effector and lowers or raises it to the adjacent sector's height. Set the height of the sector effector accordingly to the palette value (you'll have to play around with it to get it just right - this step can be quite tricky). ---------------------------- 4.14 MUSIC AND SOUND EFFECTS ---------------------------- 4.14.1 Types of Sound Effects Map Name: TUTORIAL.MAP (ROOMS 6-C, 6-D, and 6-E) There are 4 types of sound effects that are available for use in level making. The first 3 types are covered in this section, while the fourth is explained in section 4.72. The 3 effects covered here all use the Music&SFX sprite (sprite #5). Activation Sound (ROOM 6-C) When used in a sector with a sector lotag, this sound will play when the sector's lotag function is activated (i.e. - A door opening). Lotag : Number of the starting (or main) sound you want to play. Hitag : Number of the ending (or secondary) sound you want to play. Placement : In any sector with a sector lotag. Ambient Sound (ROOM 6-D) When used in a sector without a sector lotag, an ambient sound will be played when the player walks near. Lotag : Number of the sound you want to play Hitag : Maximum distance that the sound can be heard. A hitag value of 1024 equals one of the largest grid squares in Build. Placement : Any sector without a sector lotag. Echo Effect (ROOM 6-E) When used in a sector without sector lotag, all sounds will have an echo effect. Lotag : 1000 + the amount of echo (from 0 to 255, with 0 being the least amount of echo) Hitag : Maximum distance that the sound can be heard. A hitag value of 1024 equals one of the largest grid squares in Build. Placement : Any sector without a sector lotag. 4.14.2 Adding Your Own Music and SFX Map Name: NONE Custom sounds and music can be added to Duke Nukem 3D, but there are several ways to go about it. All music is required to be in .mid (MIDI) format, and all sound effects are required to be in either .VOC (VOICE) or .WAV (WAVE) formats. Renaming Custom Sounds To add custom sounds or music, simply rename the custom music or sound effect to the exact same filename of an existing music or sound effect file. For example: If I wanted to add a sound of Homer Simpson saying "Woo-Hoo!" to the game, I would first find a sound to write over (let's use Duke saying "Where is it?"). The filename for this sound is whrsit05.voc. I would rename my custom file from woohoo.voc to whrsit05.voc, and I would place this new sound in the main game directory. The sound *must* be in the main game directory, or this will not work. Editing CON Files Custom sounds and music can also be added by editing the USER.CON file. Please see the Con Editing FAQ for instructions on doing this. 4.14.3 Sector Activated Sounds Map Name: TUTORIAL.MAP (ROOM 6-F) This sound technique allows you to trigger a sound when Duke walks into a certain sector. An example of this would be from Episode 1, Level 3 where Duke enters the revolving room and hears : "Too late Nukem. We're in control now!". To make a sector activated sound, simply give the sector you want to be the "trigger" sector, a lotag of 10+++. +++ is the sound number that will be played. The sound number for Duke saying "Damn!" is 214, so the sector would have a lotag of 10214 if you wanted to play this sound. Note that these types of sounds only play once. 4.14.4 Making Phones Ring Map Name: TUTORIAL.MAP (ROOM 6-G) Making telephones ring can be a trick, but it's pretty easy to do. STEP 1: Make your telephone sector. This effect works best (in my opinion) when the telephone is a sector and not a sprite. STEP 2: Place a sprite on the front of the telephone. Change this sprite into a switch (#132 works just fine) and resize the switch to match the size of the front of the phone. In 3D mode, press the [1] key while the mouse pointer is over this switch sprite. Then rotate the switch sprite (with the [<] and [>] keys) so that you cannot see the sprite (the angle should face the back of the phone). NOTE 1: Dipswitch sprites don't seem to work, so use the SLOTDOOR type switches. STEP 3: Give the switch a unique lotag value. The hitag value of this switch is the sound number that you want to play upon activating the phone (by pressing the space bar). The sound for a busy phone signal is a hitag value of 174, but you can use any sound you wish to use. Take a look at the tutorial map if you do not fully understand. 4.14.5 The Sound Effects Listing A listing of sound effects is available for downloading at Map FAQ Central (http://mapfaq.3dportal.com). The file you will want to get is named "sfxlst20.zip", and can be gotten by going to the "DN3D Map Editing" link under the "FAQ Downloads" heading in the left frame of the site. ------------------------- 4.15 WORKING WITH SPRITES ------------------------- 4.15.1 Working With Sprites Map Name: NONE Sprites are the most used aspect (other than walls and sectors) in Duke Nukem 3D, and are very easy to master. To place a sprite in your map, press the [S] key (in either 2D or 3D mode). To change the sprite graphic, move the mouse over the desired sprite and press the [V] key twice. Find the desired sprite in the list, select it, and press the [ENTER] key. Sprites are used to make water fountains, cracks in walls, viewscreens, and more. 4.15.2 Security Cameras Map Name: TUTORIAL.MAP (ROOM 6-H) To make a security camera and corresponding viewscreen, follow these steps: STEP 1: Place one sprite where you want the viewscreen to be. You can use either sprite #502 or sprite #499. Give the screen a unique hitag value. STEP 2: Place several sprites where you want cameras to be. The camera sprite is #621. Give all the camera sprites that you want associated with the viewscreen created in step 1, a lotag value equal to the screen's hitag value. NOTE 1: The angle of the camera sprite is the angle that the camera will point. NOTE 2: To make cameras pan right and left, give them a hitag. Set the camera's angle to the center of the arc in which you want it to pan. Then set the hitag value equal to the build units of angle measure. A value of 256 will make the camera rotate 45 degrees to both the left and right of the sprite's angle. NOTE 3: To change how far the camera looks either up or down, change the shade value of the camera itself (by pressing the [']+[S] keys on the camera sprite in 3D mode). A negative (bright) value will make the camera look down, and a positive (dark) value will make the camera look up. The brighter (smaller) or darker (larger) the value, the more the camera will either look down or up. 4.15.3 Vents Map Name: TUTORIAL.MAP (ROOM 6-I) To make a vent and vent cover, simply follow these steps: STEP 1: Create the vent area sectors. Make this area accessible from a room in your level. STEP 2: Place a sprite at the entrance of your vent area, and change it to sprite #595. In 3D mode, resize this sprite to properly fit the vent area entrance, and press the [B] and [H] keys on the sprite (if it already appears as a thick pink sprite in 2D mode, you need not press these keys). Press the [R] key on the sprite one time to make it sit "flat" on the wall. 4.15.4 "3D" Bridges Map Name: TUTORIAL.MAP (ROOM 7-A) A bridge is nothing but a group of sprites with the blocking and hitscan flags turned on. To make a bridge, simply place several sprites across the place you wish to span, size them to the desired length and width, and press the [B] and [H] keys on them in 3D mode (the sprites should be thick and pink in 2D mode). To make a bridge fall down when shot, give all portions of the bridge (i.e. - all the sprites that make up the bridge) a unique hitag value. 4.15.5 Demo Cameras Map Name: NONE To make a camera that will play back demos after they are recorded, simply place one sector effector sprite where you want the camera. Give this sprite a lotag of 27, and a hitag value equal to how far the camera can "see". Experiment with this value to get it just right. 4.15.6 Spawning Stuff Map Name: TUTORIAL.MAP (ROOM 7-B) There are basically 3 ways to spawn something in the game. The "CANWITHSOMETHING" Sprite This sprite is a trash can that will spawn something when shot. Simply place a sprite where you want the trashcan to be, change it to the correct tile number (#1232), and give it a lotag value equal to the reference number of the sprite that you want to spawn. For example, if you wanted to spawn shotgun ammo, you would give the CANWITHSOMETHING sprite a lotag value of 49 (because the shotgun ammo is located at tile #49). Spawn After Killing an Actor This effect allows you to spawn something when an actor is killed by the player. A good example of this is the stripper. If you shoot her, you might want some enemies to pop out. To do this, place the actor (that will trigger the spawn) where you want it to be (for our example we will use the stripper). Place a Respawn sprite (#9) where you want each monsters to appear. Give the actor sprite a unique hitag. Give the Respawn sprite a lotag value equal to the dancer's hitag. Now give the Respawn sprite a hitag value equal to the reference number of the sprite you wish to spawn. For example, if you wanted to spawn shotgun ammo, you would give the Respawn sprite a hitag value of 49 (because the shotgun ammo is located at tile #49). Trigger Spawns You can spawn items by either toggling a switch, or by triggering a Touchplate. To create this, place the switch or Touchplate where you want it to be, and give it a unique lotag value. You can give it a hitag value if you want - the hitag value is how many times the Respawn will work. Now place a Respawn sprite where you want another sprite to spawn. Give it the same lotag value as the switch or Touchplate. Give the Respawn sprite a hitag value equal to the reference number of the sprite you want to spawn. For example, if you wanted to spawn shotgun ammo, you would give the Respawn sprite a hitag value of 49 (because the shotgun ammo is located at tile #49). 4.15.7 Active Tripbombs Map Name: NONE To place an active tripbomb, simply place a sprite on the wall where you want the bomb to be, and change the sprite to #2566. Resize the sprite to a realistic size. Keep in mind that the bomb does not arm itself until it "sees" the player, so place it in a convenient spot. 4.15.8 Making the Mini-Boss Map Name: NONE The mini-boss is simply the episode end boss, but when killed, his death doesn't start the end sequence. Plus, he's a lot easier to beat in "mini-boss" status. To change an end boss to a mini-boss, simply place the boss sprite where you want it, and give it a palette value of 21. To spawn a mini-boss, place a Respawn sprite where you want it to spawn, give it a hitag value of 2630, a lotag value equal to the lotag of the switch or Touchplate that toggles it, and a palette value of 21. NOTE #1: The second and third episode bosses cannot be made into mini-bosses without hacking the con files. 3D Realms mistakenly gave them only 1 health point when their palette value is anything but 0. If you do make them mini-bosses, realize that they will be extremely easy to kill. 4.15.9 Exploding Helicopter & Car Map Name: NONE To create the exploding helicopter or car, simply place a sprite where you want it to originate from (#1346 for the helicopter and #2491 for the space car). Set the angle of the sprite to the direction you want the car to travel in, and raise the sprite up as high as you want in 3D mode. It should be noted that you must leave enough room for the car or helicopter to travel through - if you don't, it will slide down the first wall it hits, making a very unrealistic effect. 4.15.10 Cranes Map Name: TUTORIAL.MAP (ROOM 7-C) Cranes allow the player (and other sprites) to be picked up and carried from one place to another by a crane sprite. STEP 1: Make a sector that the crane will travel down. Place one sprite in this sector, and change it to sprite #1222. Raise this sprite all the way up to the ceiling. This sprite is the crane itself and *should not* be resized - leave it the default size. STEP 2: Make one smaller sector at the end of the sector you just created. This is where the player will be picked up. Place one sprite in this sector, and change it to sprite #1221. Make sure that this sprite stays at ground level (don't raise it off the ground). You're finished! Take a look at the tutorial map if you don't understand. NOTE 1: If you have more than one crane in your level, you need to give both the sprite created in step 1, and the sprite created in step 2, the same unique hitag. Do so for each crane you make in your level. ----------------------------- 4.16 MULTIPLAYER LEVEL MAKING ----------------------------- 4.16.1 Dukematch & Co-op Starting Positions Map Name: NONE To create co-op and Dukematch starting points, place the initial frame of the Duke Nukem sprite (#1405) where you want the start point to be. This is all you need to do to make a Dukematch starting point. Co-op start positions should all be located at the beginning of the level (but they are not required to be), and should have a lotag of 1. A minimum of 7 start positions is required for 8 player co-operative and Dukematch games. The player 1 start position (brown arrow in 2D mode) does count as a start position. 4.16.2 Making Items Appear Only In Multiplayer Map Name: NONE To make a sprite appear only in Dukematch or Co-op games, give the desired sprite a palette value of 1. This is effective for making weapons and other sprites you want available in multiplayer, not available to the player in single player mode. Switches to certain doors are one possibility for this effect (this possibility appears in most of the levels made by 3D Realms). 4.16.3 Making Duke TAG Levels (Version 1.4 or 1.5 Required) Map Name: NONE All the specs for making Duke TAG levels can be found in the file "buildtag.txt". This file can be found in the Build directory on your game CD. The effects used for Duke TAG levels are incremental rising and falling sectors (for the scoreboards) and one-way teleporters for cross-level transportation. ------------------ 4.17 MISCELLANEOUS ------------------ 4.17.1 Glass Map Name: TUTORIAL.MAP (ROOM 7-D) Glass is basically a masked wall that has the transparency flag turned on. You can use any texture you want to, although this how-to will guide you through making "breakable" glass. STEP 1: Create a masked wall where you want the glass window to be. NOTE 1: This mask should not be on a wall where the player can see the wall itself, and where the wall has two properties (one for the top part and one for the bottom). Window 1 in the tutorial map shows this effect - notice how the wall changes when shot. You should create "buffer sectors" to make this problem non-visible. Windows #2-#4 all have these "buffer sectors", so look at them if you don't understand what I'm talking about. STEP 2: Change the texture of this mask to the breakable glass texture, which is texture #503. STEP 3: While in 3D mode, press the [B] and [H] keys on the masked wall. This makes the masked wall block you and other characters from walking through the wall, and it makes bullets "hit" this wall. STEP 4: Now point at the mask in 3D mode and press the [T] key. The mask will now become transparent. Press the [T] key again. The glass will be even more transparent. There are 3 levels of transparency, and they are as follows: First - No transparency (try a regular wall texture to see) Second - Slight transparency Third - Most transparency Set the transparency level to the setting that you desire. In the tutorial map, window 2 shows the first level of transparency, window 3 shows the second level of transparency, and windows 1 and 4 show the third level of transparency. 4.17.2 Secret Areas Map Name: NONE To make a secret area, give the desired sector a lotag of 32767. 4.17.3 Shooters Map Name: TUTORIAL.MAP (ROOM 7-E) This section covers how to make "shooters". A shooter is basically something that repeatedly shoots an object of your choice. A good example of a shooter is the one located in episode 1, level 4. When you unlock the red keypad, the pad lowers, revealing a shooter that shoots "shrinkers" (the projectiles that make you shrink in size). STEP 1: Create a sector from which the shooter will shoot from. STEP 2: In this newly created sector, place one sector effector sprite, one GPSpeed sprite, and one Masterswitch sprite. STEP 3: Place a switch somewhere in your level and give it a unique lotag. STEP 4: Give the Masterswitch sprite the same lotag value as the switch. Also give the Masterswitch sprite a hitag of 50. STEP 5: Place one sector effector sprite where you want the shots to originate from. Change the angle of this sprite to the direction you want the shooter to shoot. Give this sprite a lotag of 36. STEP 6: Now you must decide what you want to shoot. Do this by giving the GPSpeed sprite a lotag of one of the following values: 1360 = Octabrain Blasts 1625 = Alien Lasers 1636 = Lizard Spit 1641 = Freezer Blasts (Auto-aims at player) 1650 = Mortars (Like the first boss throws) 2605 = Rockets (Auto-aims at player) 2556 = Shrinkers 4.17.4 Turning Shooters Off Map Name: NONE The following steps explain how to construct a shooter that can be turned off after it has been triggered. STEP 1: Create a sector from which the shooter will shoot from. STEP 2: In this newly created sector, place one sector effector sprite, one GPSpeed sprite, and one activator sprite. STEP 3: Place a dipswitch sprite somewhere in your level and give it a unique lotag. It *must* be a dipswitch sprite, or this effect will not work correctly. STEP 4: Give the activator sprite the same lotag value as the switch. Also give the activator sprite a hitag of 50. STEP 5: Place one sector effector sprite where you want the shots to originate from. Change the angle of this sprite to the direction you want the shooter to shoot. Give this sprite a lotag of 36. STEP 6: Now you must decide what you want to shoot. Do this by giving the GPSpeed sprite a lotag of one of the following values: 1360 = Octabrain Blasts 1625 = Alien Lasers 1636 = Lizard Spit 1641 = Freezer Blasts (Auto-aims at player) 1650 = Mortars (Like the first boss throws) 2605 = Rockets (Auto-aims at player) 2556 = Shrinkers 4.17.5 Difficulty Settings Map Name: NONE To set the difficulty setting for a monster, simply give the desired monster one of the following values: 2 = Skill Level 2 3 = Skill Levels 3 and 4 (Skill 4 just makes the monster Respawn) 4.17.6 Making Signs Fall When Shot Map Name: NONE To make a sprite sign (or other sprite) fall to the ground when hit by an explosion, simply give the sprite any hitag other than 0. 4.17.7 Lightning and Thunder (Version 1.4 or 1.5 Required) Map Name: ATOMIC.MAP (ROOM #4) To make the lightning bolt engine work, follow these simple steps: STEP 1: Place several lightning sprites (#4890) in an outside area, and give each sprite *the same* unique hitag. The sky should also be cloudy (not required, but makes it look realistic). STEP 2: Place a sector effector in each sector that contains a lightning bolt sprite. Give each sector effector a lotag of 28, and a hitag equal to the lightning bolt sprite's hitag value. 4.17.8 Making Rain Map Name: NONE To make a raining effect, place dripping sprites (#660) where you want them to be, and raise them to the ceiling of the sector they are in. If you own version 1.4 or 1.5, place a music and sound effects sprite somewhere in the raining sectors, give it a lotag of 358, and a hitag of the distance the sound should be heard. NOTE: Giving the rain drops a palette number of 13 is recommended for both versions of the game. 4.17.9 Forcing Duke To Start Weaponless Map Name: NONE To make Duke start a level without any weapons or ammunition, simply place the HURTRAIL (#859) or other damaging floor tile under the starting position. =============================== SECTION 5 - GENERAL INFORMATION =============================== 5.1 Palette List The following is a listing of all the palette numbers and their corresponding uses. Palettes can effect 3 different 'layers' of a tile. The easiest way to understand these 3 different 'layers' is by using the stripper sprite. The 3 'layers' are: Background (her skin), Foreground (her clothes), and Minor Foreground (money, accessories, etc). 0 Normal 1 Makes a sprite Multiplayer only. Also makes all wall, ceiling, and floor textures change to blue values. 2 All 3 layers are red. Makes all wall, ceiling, and floor textures change to red values as well. 3 Changes nothing on sprites. If used on a sector effector with a lotag value of 7, the water you jump into will turn into slime (a green tint). Using this value also prevents the player from being killed upon entering a sector with the BIGORBIT texture on either the floor, ceiling, or both. 4 All 3 layers are solid black. 5 All red colors (on all 3 layers) become brown. 6 Night Vision Green (Used by the game to designate night vision. I wouldn't recommend using this in a regular level). 7 All 3 layers are yellow-green. Makes all wall, ceiling, and floor textures change to yellow values. 8 All 3 layers are light green. 9 Normal 10 Foreground is red. 11 Foreground is light green. 12 Foreground is light gray. 13 Foreground is dark gray. 14 Foreground is dark green. 15 Foreground is brown. 16 Foreground is dark blue. 17 Background is blue, Foreground is green, Minor Foreground is blue. 18 Exact same as 11. 19 Background is red, Foreground is gray, Minor Foreground is red. 20 Background is blue, Foreground is gray, Minor Foreground is blue. 21 Foreground is red. This palette can be used to turn a regular boss into a mini-boss (the level doesn't end when the boss is killed). It also can be used to make an assault trooper an assault captain. 22 Foreground is light gray. 23 Foreground is yellow. 24 Some shades of gray and white change to corresponding red shades. 25 Minor Foreground is red. 5.2 Group File Format The group file is the main storage file format used in Duke Nukem 3D. Group files can be thought of as "containers". These "containers" hold multiple files, making it easy to deal with many files at once (moving one file, in essence, moves many other files as well). The group file has the following format: I - The File Signature The first twelve (12) bytes of a group file are known as the file "signature". These 12 bytes contain the name of the original designer of the group file format. That person is Ken Silverman, and the first 12 bytes appear like this (without the quotation marks): "KenSilverman" II - The File Count The next four (4) bytes of a group file are the number of files that are contained within the group file. III - File Header Table The file header table is comprised of one 16 byte structure for each file contained in the group file (so if our group file has 25 embedded files in it, the group file has 25 structures that are each 16 bytes long). The first 12 bytes of the structure are the filename, and the last four bytes are the file's size. Note that the 12 bytes for the filename include the period and the file extension, so file names must be no longer than 8 characters. For example, Tiles000.art is as large a filename as you can have. IV - The Raw File Data Everything after the file header table is simply the raw file data, packed one after the other, in the exact same order as the files appear in the file header table. 5.3 Facts On Dimensions This section is some useful dimensions to use in Building levels. The units of measurement used here are the number of times you should press the [PGUP] or [PGDN] keys. Measurement Standing Ducking Minimum sector height that can be entered 11* 6 Maximum sector height that can be walked on 3 0 Maximum height of floor to shoot above 8(9)** 3(4)** Minimum height of ceiling to shoot below 10(9)** 5(4)** Same as above, but using RPG 11 6 Maximum height of floor to jump on 20 0 Minimum height of wall to place tripbomb 10 4 * Duke can also enter sectors with a height of 10, but he will automatically duck. ** The second number is provided for when only some of the shots actually get past the floor or ceiling. 5.4 Sector Effector Lotag Listing 0: Rotating sector 1: Center point for above 2: Earthquake 3: Random light effect after light is shot out 4: Random light effect 5: NONE 6: Subway Engine (Pulls other cars) 7: Transporter 8: Door opens - room lights up 9: Ceiling light lowers - room lights up 10: Door auto close (set Hitag to delay) 11: Swinging Door 12: Light switch 13: Used to make holes in walls 14: Subway car 15: Sliding door (ST 25) 16: NONE 17: Elevator transporter (ST 15) 18: Incremental sector rise/fall (PPAK only) 19: Lower ceiling when explosion hits sector 20: Stretch sector (ST 27) 21: Lower floor or ceiling (ST 28) 22: Prong for teeth doors 23: One way teleporter exit (PPAK only) 24: Conveyor belt or water current 25: Engine Piston (moves up and down) 26: NONE 27: Demo Camera Location 28: Lightning Bolt Engine (PPAK only) 29: Used to make waves 30: 2 way train (ST 31) 31: Used to raise or lower the floor 32: Used to raise or lower the ceiling 33: Earthquake Debris 36: Used for Shooters 5.5 Sector Lotag Listing 1: Above water 2: Under water 9: Sliding Star Trek door 15: Elevator transport (SE 17) 16: Elevator platform down 17: Elevator platform up 18: Elevator down 19: Elevator up 20: DOOM door 21: Opposite of DOOM door 22: Split from middle door 23: Swinging door 25: Sliding door 26: Splitting Star Trek door 27: Stretch sector (SE 21) 28: Drop floor (SE 21) 29: Teeth door prong (SE 22) 30: Rotate-rise sector 31: 2-way train 10+++: Play sound when player walks on sector (+++ is sound #) 32767: Secret room 65535: End level 5.6 List of Official Levels The following is a list of the all the official levels found in Duke Nukem 3D, and the level's respective designer. AB - Allen H Blum III LL - Richard Bailey Gray (The Levelord) RP - Randall Pitchford II KS - Keith Schuler GB - George Broussard Episode 1: ---------- 1. AB - Hollywood Holocaust 2. AB - Red Light District 3. AB - Death Row 4. AB - Toxic Dump 5. LL - The Abyss 6. AB - Launch Facility 7. AB - Faces of Death (Dukematch Only) 8. AB - Dukematch Level 1 (Dukematch Only) Episode 2: ---------- 1. AB - Moonbase 2. LL - Incubator 3. LL - Warp Factor 4. AB - Fusion Station 5. AB - Occupied Territory 6. AB - Tiberius Station 7. AB - Lunar Reactor 8. AB - Dark Side 9. AB - Overlord 10. LL - Spin Cycle 11. LL - Lunatic Fringe Episode 3: ---------- 1. LL - Raw Meat 2. LL - Bank Roll 3. LL - Flood Zone 4. LL - L.A. Rumble 5. LL - Movie Set 6. LL - Rabid Transit 7. LL - Fahrenheit 8. LL - Hotel Hell 9. AB - Stadium 10. LL - Tier Drops 11. AB - Freeway Episode 4: ---------- 1. RP - It's Impossible 2. AB - Duke Burger 3. GB - Shop N Bag 4. AB - Babe Land 5. RP - Pigsty 6. AB - Going Postal 7. KS - XXX Stacy 8. KS - Critical Mass 9. AB - Derelict 10. RP - The Queen 11. RP - Area 51 Other: ------ AB - _se.map (Sector Effector Demo Map) AB - _st.map (Sector Tag Demo Map) AB - _zoo.map (Zoo Map) 5.7 List of Cheats The following is a listing of all the cheat codes available in the game: DNCORNHOLIO - Toggles god mode DNKROZ - Also toggles god mode DNSTUFF - Gives you all weapons, inventory, and keys DNITEMS - Gives you all keys, inventory, and full armor DNINVENTORY - Gives you all inventory DNWEAPONS - Gives you all weapons DNKEYS - Gives you all keys DNHYPER - Gives you steroids DNSCOTTY### - Warps to a certain level. The first # sign is the episode number, while the second and third # signs are the level number. DNSCOTTY203 would take you to episode 2, level 3. DNMONSTERS - Toggles monsters DNCASHMAN - When the spacebar is pressed, money is thrown out DNVIEW - Same as hitting F7 (also displays message saying "You're too good to be cheating!") DNRATE - Shows the Frames per second (FPS) DNDEBUG - Shows some debugging information DNSKILL# - Changes the skill level to whatever you input for # DNBETA - Displays the message "Pirates Suck!" DNTODD - Displays the message "Register Cosmo" DNALLEN - Displays the message "Buy Major Stryker" DNCOORDS - Displays your coordinates DNSHOWMAP - Displays the entire map DNCLIP - Toggles Clipping Mode (if you walk into empty space, you die). In versions 1.4/1.5, walking into empty space will not kill you. DNUNLOCK - Unlocks all doors and opens those that are not locked. 5.8 List of Secret Messages in the Game This section has been included as an "extra" (it has nothing to do with editing, but is rather interesting information). The following messages are hidden in their respective levels. Can you find all of them? Episode 1 --------- Level 1 - 867-5309 Stryker Metronet.com Level 3 - Behind the babe Level 4 - How did you get here? Level 5 - Go with the flow Dopefish Lives You're not supposed to be here - Levelord SUYT (Acronym for "Show Us Your Tits") Episode 2 --------- Level 1 - U.S.S. Framerate (Hint: Can only be seen in Build) Level 2 - 1138 (Can be found in 2 places) Level 3 - Blum Bed Co. Level 7 - Bite Me! Level 8 - Jump in the monolith Episode 3 --------- Level 1 - Push her button Push Me No one should be here - Levelord Level 3 - The crack below Annal Ooothrick (See NOTE #1 below) Level 4 - Under the Knife You're not supposed to be here... either - Levelord Level 5 - Push the register not the snacks Jump at the Earth Level 6 - Telltale Footprints Level 7 - Blast the bottles Level 8 - Check the Vintage Behind the Fountain Duke was here 2017 (See NOTE #2 below) Episode 4 --------- Level 1 - Are you small or are you cheating? Looking for secrets? - DUV C'mon, Quit Cheating - DUV Level 3 - Run your ass off Special Notes ------------- NOTE #1 : Here is the meaning of the message "Annal Ooothrick" straight from Levelord himself: "...not sure of the spelling, but that is a tribute to the movie Excalibur. I believe it's Gaelic for dragon's breath and was a tie-in to the steam being emitted at the message." NOTE #2 : This message can be found in the game, but is unreadable due to the fact that all the letters are jumbled together (they were never raised up to where they should have been). Can you find this message? ================================================= SECTION 6 - THE MOST COMMON QUESTIONS AND ANSWERS ================================================= This section is a set of the most commonly asked questions, along with the answers to these questions. Browse through this list, and if you find your question, read the answer! :-) 6.1 I can't find Build on my CD - where is it? The Build program is located in the \goodies\build directory. If your CD does not have a \goodies\build directory, read this note written by Joe Siegler of 3D Realms: If you bought Duke Nukem 3D, and it does not have a \goodies\build directory, please be aware that this was a misprint at the distributor level. You need to contact the distributor, GT Interactive, for information on how to get a replacement. Apogee/3D Realms will only replace CD's bought DIRECTLY FROM US. You can contact GT at support@gtinteractive.com. Alternately, you can call 1-732-248-1622 Extension 800 for the Missing Build Directory issue only. 6.2 I can't get Build to work. How do I do it? Make sure that Build is in the *same* directory as the game itself. Next, make sure that the read only properties of all the files in this main directory are turned off. You can do this by entering DOS (or a DOS window from Windows 95) and typing the following line while in the Duke Nukem 3D directory: attrib -r *.* 6.3 How do I enter 3D mode? Press the [ENTER] key on your numeric keypad. This key is located on the far right of the keyboard, under the [+] key (on most keyboards at least). 6.4 3D Mode is screwed up! What do I do to fix it? First, make sure that Build is in the same directory as the game itself. Next, check to see that all the read only properties of all the files in this main directory are turned off. You can do this by entering DOS (or a DOS window from Windows 95 or 98) and typing the following line while in the Duke Nukem 3D directory: attrib -r *.* If this solution doesn't work, enter the program "BSetup.exe" and change the video mode *only*. The select "Save Properties and Exit" from the menu. 6.5 How can I play my own maps? Type in either of the following lines in DOS: duke3d -map foo.map duke3d -map foo In the line above, foo is the name of your map. The .map extension is not needed, but can be used. 6.6 When I run my level, I get an error. What does it mean? Take a look at section 7 for the meanings to various Build errors. 6.7 Why does the game crash when I run my level? Make sure that you have placed a start position in your level (by pressing the [SCROLL LOCK] key in 2D mode). If you already have a start position, see if an error is being generated upon the game crashing. If an error does exist, check section 7 of this FAQ for more information on the error. 6.8 Build sucks. Is there another editor available? No, Build is the only editor available. It's not that hard to learn, so stick with it. A level editor other than Build is available for Macintosh users, but I don't use a Mac, so I can't give you much information on it anyway. 6.9 Walking under a parallaxed sky kills me. Why is this? First, the texture you are using is the BIGORBIT1 texture. How do I know this you ask? Because it's the only texture that can kill you when parallaxed. To fix this problem, simply change the palette of this texture to 3 by using the [ALT]+[P] key combination in 3D mode. Walking under it will not kill you. 6.10 My subway shoots rockets at me - Why? Subway sectors that are under a parallaxed sky will shoot rockets (much like the orbiting ship in Episode 2, Level 1). To fix this problem, simply change the palette of the parallaxed texture to 3 by using the [ALT]+[P] key combination in 3D mode (or you can un-parallax the texture). =========================================== SECTION 7 - COMMON BUILD AND RUNTIME ERRORS =========================================== 7.1 Found Lonely Sector Effector This error occurs when a sector effector sprite is found with no hitag and lotag value (i.e. - both the hitag and lotag is 0). To fix this, copy down the coordinates that the error gives you and find those coordinates in your map in Build. Accordingly delete or tag the sector effector in question to correct this error. 7.2 Subway Found No Zero'd Sectors With Locators This is a very complex error and will require some explaining. This error usually occurs in two-way trains however, I have seen it in regular subways built in certain maps. For this explanation, we will look at the problem as if it were occurring in a two-way train. The problem is this: the sector effector in the two-way train is not in the correct sector. So which sector should it be in? Well, you cannot split a two-way train sector into multiple sectors. And you cannot nest sectors in a two-way train (there is a "complex" way of nesting sectors in a train - see the two-way train how-to in this FAQ for more information). In other words, the train itself should be one sector, and the player should be in this sector at *all* times while riding the train. So if you can't nest or split sectors, how did the level designers at 3D Realms make the window sectors on the two-way trains found in Episode 2? Well, that's a complex method of using non-valid sectors and nesting sectors between the two. Sound complicated? It is. But it can be done, and done very well. Check the two-way train how-to to see exactly how to do this. 7.3 Can't Make a Sector Out There This problem sometimes occurs when trying to create a sector inside of another sector (and using the [ALT]+[S] keys to make it valid player space). The solution to this problem is simple. Delete the sectors in question, and *always* build from the innermost sector outwards. Building from the outside to the inside usually ends up in this error. This error also appears when trying to make a valid player space sector outside of the map. The solution for this case is simply this: Don't try to create valid player space sectors (red lined sectors) outside of the map. 7.4 Too Many 'Anim' Walls (Max. 512) This problem appears to be caused by too many animated masked walls, such as the animating fan. Wall, floor and ceiling textures may cause this problem as well, but these possibilities have not yet been documented. It should be noted that Build has the unfortunate problem of masking walls that you tell it not to. For some reason, Build sometimes will auto-mask red line walls that you create, but they don't show up in 3D mode. The only solution to this problem is to try and find the masked walls that don't show up (they're probably on every red lined sector in your level), and remove them. ======================================= SECTION 8 - UTILITIES FOR DUKE NUKEM 3D ======================================= 8.1 Wad2Map This little utility, found in the \goodies\wad2map directory on your game CD, will convert Doom maps into Duke Nukem 3D maps. The enemies, textures, tagging, etc. are changed, but when I used this utility, I had to redo almost everything by hand. It can save some time in the Building process, however. Usage: WAD2MAP <DOOM.WAD path> <level to change> DUKE.TXT Usage Example: WAD2MAP c:\games\doom\doom.wad E1M1 DUKE.TXT The <DOOM.WAD path> is the full path to the DOOM.WAD file on your computer, the level to change is the level that you want to change over, and the script file to use is always duke.txt (you can make your own if you want, however). The script file duke.txt can be found in the \goodies\wad2map directory on your game CD. 8.2 Wad2Art This utility, found in the \goodies\wad2map directory on your game CD, converts the original Doom art to Duke Nukem 3D art. All of the original Doom art tiles are placed into one, large tiles000.art file. NOTE: Before using this utility, backup the names.h file and the palette.dat file, because wad2art will overwrite them. Usage: WAD2ART <DOOM.WAD path> Usage Example: WAD2ART c:\games\doom\doom.wad The <DOOM.WAD path> is the full path to the DOOM.WAD file on your computer. Three files will be created in your game directory (or the directory in which wad2art is located): Tiles000.art --- A large file containing all the Doom tiles Names.h --- The names of all the Doom tiles Palette.dat --- The original Doom palette 8.3 Kextract Kextract is a little program that was written by Ken Silverman (author of the Build engine). This program can extract files from any valid .grp file, including the duke3d.grp file (which contains all the maps, art files, sounds, music, and other files for the game itself). NOTE 1: This program *must* be in the same directory as the .grp file you wish to extract files from. NOTE 2: Extracting all files from the duke3d.grp file will take up a large amount of disk space, and will create over 450 files in your directory. This is possible to do, but use caution when doing this. Usage: Kextract [grouped file] [files to extract] [grouped file] is the name of the file that you wish to extract from. The duke3d.grp file is the file that contains all the game art, levels, sounds, etc. [files to extract] is simply the files that you wish to extract. Just sequentially list the files you wish to extract, placing a space between each file. Wildcard symbols (*) can be used to extract all of one type of a file (i.e. - *.art). 8.4 Kgroup Kgroup is another little program written by Ken Silverman (author of the Build engine), and is used to compile multiple files into one single group file (.grp) that you specify. Usage: Kgroup [grouped file] [files to group] [grouped file] is the name of the file that you wish to group to. Do not use duke3d.grp here, unless you want to reinstall the game, or unless you have a copy of the .grp file in your directory. [files to group] is simply that: the files you wish to group. Just list the files you wish to group, placing a space between each file. Wildcard symbols (*) can be used to group all of one type of a file (i.e. - *.art). 8.5 Group File Studio Group File Studio is a utility for Windows 95 and Windows 98 that makes working with group files much simpler than ever before. At the time of this writing, the available features of this program are: * Create new group files * Insert files into an existing group file * Permanently remove files from a group file * Extract a single file, a file type (i.e - *.map), or all files from a group file * Rename embedded files * Play embedded sound (*.voc) files directly from the group file * Auto-Play option for automatically playing sound files * Play embedded music (*.mid) files directly from the group file * View the attributes of the embedded art tiles (located in .art files) * View art tiles from the embedded art files * Specify a default names.h file for showing the associated names when viewing the artwork * Specify a custom palette.dat file to use for viewing art tiles * Specify a default directory to extract files to * HTML based help If you find kextract and kgroup to be difficult and cumbersome to use, give Group File Studio a try. You can download this utility at Map FAQ Central or Dukeworld. ======================== SECTION 9 - FINISHING UP ======================== 9.1 Map Authoring Template The map authoring template is a small text file that tells others about your map; what the story line is (if any), whether there is new art, music, SFX, or effects (by editing the .CON files), and other useful information. One has been included in the zip file that this FAQ comes in, under the name template.txt. Fill this out before sending your level to any site for uploading - it's very useful! 9.2 Uploading Your Level After your level is complete (and mostly bug free), you need to upload it so that people can play it! Upload your level to the Dukeworld user level archives. The URL to Dukeworld is: http:// Information on uploading files can be found there. Have fun!