Map Editing FAQ by KBreuer

Version: 0.2 | Updated: 05/20/96 | Printable Version


     Hi everybody!

     Here now the v0.2 of the DUKE NUKEM 3D EDITING FAQ (DN3DE FAQ).

     Thanks for all the feedback so far - keep it up! In the end, I
     hope that we'll have the definite reference on Duke Editing in
     this paper.

     The legalese in here is still based on Hank Leukarts most
     excellent DOOM FAQ (so far he hasn't had time to answered my
     request for permission to copy the stuff, so perhaps we'll be rid
     of it after all :)

     So far, I have not described how to work the editor itself, but
     have concentrated on the how-to section, which I guess most
     people will be more interested in.

     Here some questions for you:

	 *  Anybody already started writing such a FAQ?

	 *  Anybody who can send me info, tips and tricks to be
	    included here? All ideas, tricks, etc which make it into
	    the FAQ will, of course, be fully attributed.

	 *  I'd especially appreciate it if anybody could point out
	    errors in this FAQ.

	 *  Anybody who can think of questions which should be
	    included in this FAQ?

	 *  Anybody with a good HTML homepage and/or an ftp server
	    which we could use as a home base, containing the FAQ, the
	    best maps, graphics (cars!), .CON hacks, etc.

	 *  Anybody who wants to set up a mailing list about DUKE
	    Unfortunately I can't, as my disk space at the university
	    is severely limited :(

	 *  Lots of open questions in the FAQ - the most pressing ones
	    IMO are marked '##'.

     The endresult would come in two parts:
     1) This FAQ.
     2) An uuencoded map called 'MUSEUM', demonstrating _all_ tips and
     tricks explained in the FAQ as well as containing all textures,
     sprites, etc for easy reference.
     (Yes, I've started and, yes, it's a lot of work :)

     The FAQ, if it comes to it, would be posted monthly (or bi-
     weekly, if you prefere) to and


     So here's v0.2 of the FAQ. Note that there are PLENTY of gaps,
     and that the table of contents (with incorrect page numbers, of
     course) is at the very back.



     [need ASCII logo here - anyone?]

     Release v0.2 - Request For Comments II
     Last Updated: May 20, 1996
     Written by: Klaus Breuer (

				 Chapter 1

			    Happy lawyer dept.

     1.1  Disclaimer

     This FAQ is to aid in informing the public about creating
     additional levels for the Game Duke Nukem 3D, by 3D Realms. In no
     way should this promote your killing yourself, killing others, or
     killing in any other fashion. Also, it should not promote the
     building of real-world death-traps :)
     Additionally, Klaus Breuer claims NO responsibility regarding ANY
     illegal activity concerning this FAQ, or indirectly related to
     this FAQ. The information contained in this FAQ only reflects 3D
     Realms indirectly, and questioning 3D Realms regarding any
     information in this FAQ is not recommended.

     1.2  Trademark information

     All specific names included herein are trademarks and are so
     3D Realms, Duke Nukem, IBM, Microsoft and MS-DOS.	Any trademarks
     not mentioned here are still hypothetically acknowledged.

     1.3  Copyright notice

     This article is Copyright 1996 by Klaus Breuer. All rights
     You are granted the following rights:

	1.  To make copies of this work in original form, so long as

	     1.1.  the copies are exact and complete;

	     1.2.  the copies include the copyright notice and these
		   paragraphs in their entirety;

	     1.3.  the copies give obvious credit to the author, Klaus

	     1.4.  the copies are in electronic form.

	2.  To distribute this work, or copies made under the
	    provisions above, so long as

	     2.1.  this is the original work and not a derivative

	     2.2.  you do not charge a fee for copying or for

	     2.3.  you ensure that the distributed form includes the
		   copyright notice, this paragraph, the disclaimer of
		   warranty in their entirety and credit to the

	     2.4.  the distributed form is not in an electronic
		   magazine or within computer software (prior
		   explicit permission may be obtained from Klaus

	     2.5.  the distributed form is the NEWEST version of the
		   article to the best of the knowledge of the

	     2.6.  the distributed form is electronic.

     You may not distribute this work by any non-electronic media,
     including but not limited to books, newsletters, magazines,
     manuals, catalogs, and speech.  You may not distribute this work
     in electronic magazines or within computer software without prior
     written explicit permission.
     These rights are temporary and revocable upon written, oral, or
     other notice by Klaus Breuer. This copyright notice shall be
     governed by the laws of the Federal Republic of Germany.

     If you would like additional rights beyond those granted above,
     write to the author at "" on the

				 Chapter 2


     2.1  *A word from Klaus Breuer*

     Well, here's the v0.2 version of the FAQ, still released as an
     RFC (Request For Comments) - so let's hear your comments :)
     Since this is only v0.2, there will be lots of gaps, omissions,
     errors and -gasp- typos.

     I've added quite a few how-tos, I'll add to the editor handling
     in the next release.

     2.2  *About the "UnOfficial" DUKE NUKEM 3D EDITING FAQ*

     Welcome to the release v0.2 of the "UnOfficial" DUKE NUKEM 3D

     What does that mean?  Version 0.2 is the second RFC release,
     "UnOfficial" means absolutely nothing, DUKE NUKEM 3D is the name
     of the game, Editing is what the FAQ is all about and FAQs are
     [F]requently [A]sked [Q]uestions.

     Here's how revision classification works.  If a new version of
     the FAQ only has a small amount of information changed or added,
     the version number is increased by 0.1. This is called a "minor
     If a new version of the FAQ has a substantial amount of new
     information changed or added, the version number is increased by
     0.5. This is called a "standard revision."
     If a new version of the FAQ has a huge amount of added or changed
     information, major parts of the FAQ are rearranged, or major
     parts of the FAQ are rewritten, then the version number is
     increased by 1.0. This is called a "major revision."

     Currently we're still in the 0.x stage, meaning a very
     preliminary FAQ. As soon as we have amassed sufficient info in
     here, I'll update the version number to 1.0.

     You may be wondering why chapter headings are enclosed in either
     []'s, ()'s, or **'s. The definition of these is as follows:

     [] 	    Chapters enclosed in brackets mean that the
		    information contained in the chapter has not been
		    updated in this or the previous FAQ.

     () 	    Chapters enclosed in parenthesis mean that the
		    information contained in the chapter has not been
		    updated since the previous FAQ.

     ** 	    Chapters enclosed in asterisks means that the
		    information contained in the chapter is new or has
		    been updated for the current version of the FAQ
		    you are reading.

     If chapter headings are not enclosed in one of the above ways, it
     means that it doesn't contain any information yet - ## please
     help fill in the gaps!
     Also, feel free to suggestion additional topics and questions,
     even (especially?) if you don't know the answers to them.

     Also, ##'s are at times found in the text - these denote
     questions I urgently need help on, and any feedback is especially

     2.3  *Getting the "UnOfficial" DN3DE FAQ*

     The "UnOfficial" DN3DE FAQ is posted every month (or earlier if a
     new version is released) on the following Usenet groups:


     The "Subject:" line of the post will be "'UnOfficial' DN3D
     EDITING FAQ v??.??" where "??.??" is the version number of the

     New releases of the "UnOfficial" DN3D EDITING FAQ will be
     uploaded to internet ftp sites as soon as I find suitable sites.

     The file name of the upload will be "dnefaq??.faq" where "??" is
     the version number of the FAQ.

     ATTENTION: ALL BBSes, Compuserve, America Online, GEnie, and all
     other information services.  PLEASE conform to the naming
     standard of the "UnOfficial" DN3D EDITING FAQ when placing this
     file on your system.

     2.4  (Adding to the FAQ)

     If you want something added to the FAQ, please send E-mail to
     "" (no quotes), explaining what your
     addition is.
     It will be reviewed, and if accepted, added to the next FAQ
     version. In the E-mail, please supply your name and E-mail
     Please note that all submissions to the FAQ become the property
     of the author (Klaus Breuer) and that they may or may not be

     By submitting to the FAQ, you grant permission for use of your
     submission in any future publications of the FAQ in any media.
     The author reserves the right to omit information from a
     submission or delete the submission entirely.

     2.5  (The DN3D EDITING mailing list)

     ## There is no such list yet, but hopefully somebody will pop up
     who will run one...

     2.6  (Acknowledgments)

     I'd like to thank 3D Realms for bringing out such an astonishing
     game! After two years, we finally seem to have a DOOM killer :)


     Thomas Mueller  (
		    He found out lots of basic workings like
		    Teleoprters, Swimming Pools, etc and put me on the
		    right track in regard to sector tags.

     THANK YOU! If, for some reason, I did miss you, PLEASE send me

     Finally, I'd like to thank everyone who reads this FAQ, you are
     what the FAQ is for!

     2.7  (Accurate information)

     An attempt has been made to make the information in this FAQ as
     accurate as possible. Unfortunately, due to the fact that the
     game was recently released, and updates, add-ons, and new
     information are being worked on each second, it's hard to keep

     2.8  *Help with new levels*

     If you are building a new level and are experiencing trouble,
     feel free to contact me about it. Chances are that you are not
     the only one with this problem, and I can add it to the FAQ.

     Also, your particular difficulty could be an interesting side-
     effect of something else, and others might want to hear about it
     as well.

     However, *please* read the FAQ fully before asking me about
     anything :)

				 Chapter 3

			  Preliminary information

     3.1  Intended audience for this chapter

     3.2  The basics

     3.3  What a map consists of

     3.4  BUILD basics: the BUILD.EXE editor

     3.5  2D mode

     3.5.1  Creating a new sector

     3.5.2  Creating an internal sector

     3.5.3  Erasing a sector

     3.6  3D mode

			       Chapter 4

		      Planning and designing a level

     4.1  Before starting

     4.2  Pros and cons of using real-world maps

     4.3  *Typical mistakes to avoid*

     This section contains, in no particular order, common errors
     which you should avoid:

     4.3.1  *Crossed lines*

     By this I mean bounding lines from the same sector crossing each
     other. While the game will aloow this, it usually looks bad.

     4.3.2  *Overlaying lines*

     Overlaying lines very often leads to mysterious graphics glitches
     (a door texture suddenly spilling onto the floor is a typical
     Rather place the lines very close to each other (using Grid lock

				 Chapter 5

		 A walkthrough to creating a simple level

     5.0.1  Some thoughts on good level design

     5.1  Creating a new map

     5.2  The grid

     5.3  Creating a room

     5.4  Changing the floor and ceiling heights

     5.5  Changing the look of walls (textures)

     5.6  Adding another room

     5.7  Adding a pedestal (inner sectors)

     5.8  Sprites and objects

     5.9  The enemy appears

     5.10  Player starting points

     5.11  Save-n-go

				 Chapter 6

				 How to...

     6.1  *The basics*

     6.1.1  *Abbreviations*

     In order to easily describe tags and the like, I use some

     [x,y]	    The tags of a sprite or wall: x is the hi-tag, y
		    the lo-tag.
		    Example: [0,34] describes a hi-tag of 0 and a lo-
		    tag of 34.

     (x)	    Tile number (refers to sprites, too).
		    Example: (621) is the camera sprite.

     S		    Sector effector tag
		    Example: S [100,256] means to insert a Sector
		    effector with the hi-tag 100 and the lo-tag 256.

     A		    Activator tag

     T		    Touchplate tag

     L		    Locked activator tag

     M		    Music and SFX tag

     L+ 	    Locator tag

     C		    Cycler tag

     D		    Master switch tag

     R		    Respawn tag

     Sp 	    Speed tag

     Bomb	    A sprite with the tile number 1247 (yellow
		    gasbottle), x-shrunken as narrow as possible. It
		    is intangible to the player, but blows up when

     6.1.2  Tags

     6.1.3  Windows

     6.1.4  A doorway

     6.1.5  Angled surfaces

     6.1.6  Glass panes

     6.1.7  *Secret places*

     To mark a sector secret, just tag it [0,32767]. A player will be
     credited for finding it as soon as the sector is entered.

     6.2  *Advanced editing*

     6.2.1  *Cameras*

     You can place cameras around the map, which will relay an image
     to one or more viewscreens.  *Setup*

     The security network consists of three objects:

     Channels	    A channel transports the video data from the
		    camera(s) to the viewscreens. It is just a number.
		    ## I haven't tested this thoroughly, but it seems
		    that the channel has to be a three-digit number.

     Cameras	    (621) [Channel,Mobility]
		    They have to be sprites, and can be placed
		    anywhere in a room, facing in any direction. Using
		    the lo-tag, you can even set the camera mobility:
		    higher numbers allow the camera to move through a
		    wider arc.
		    Some example numbers:
		    Very jerky (too short) - not recommended
		    Normal panning

     Viewscreens    (502) [Channel,0]
		    Viewscreens have to be sprites, too.  *Notes*

	 *  If several cameras share a channel, the viewscreen
	    connected to this channel can cycle through all connected
	    camera views.

	 *  It is advisable to hide the viewscreen behind armored
	    glass, to cause the well-known purple circles when it's
	    being shot at.

     6.2.2  *Blastable walls (user control)*

     Such walls can be blown up by detonating something close to them
     (a pipebomb, RPG, etc).  *Setup*

	 *  First build the wall with the hole already in it (usually
	    consisting of several sectors with angled floors and

	 *  In each of these sectors, place an S [Channel,13].
	    On the wall to be blasted, place a (possible semi-
	    transparent) crack [Channel,0] (546-549), facing the
	    player. Fire extinguishers (916) can be used, too.

	 *  If you want, place bombs on both sides of the wall for
	    realism [Channel,DelayUntilExplosion]. A delay of 8 is
	    very short, while 2000 takes ages before it explodes.  *Notes*

	 *  A wall with a crack on each side will blow ok, but the
	    other crack will remain hanging in mid-air.

	 *  Blastable walls retain no bullet holes until they blow.

	 *  Usually, the angled floor and ceiling of the individual
	    sectors will line up ok, forming a solid wall. ##
	    Sometimes, however, they don't fit, creating triangular
	    holes in the (as yet unblasted) wall. Anybody know why?  *Tips*

	 *  Use texture 852 (blasted concrete) on the inside of the

	 *  Carefully align the wall textures. Especially the sideways
	    alignment is important, as the wall looks real bad if this
	    is not done properly.

     6.2.3  *Blastable walls (triggered)

     The work just like user-controlled blastable walls, except that
     they can only be blown by program control, not by the user.
     They are triggered by a T [0,Channel], and you can even add a
     time-delay from the moment T is activated to the explosion of the
     wall.  *Setup*

	 *  First build the hole just as outlined above.
	    However, you won't need to place a crack.

	 *  In just one of the hole sectors, add a D [Delay,Channel].
	    Delay ranges from 0 to 255, 255 being longest.

	 *  Place at least a bomb [Channel, Delay] in the same sector
	    as D. Delay ranges from 8 (blow right away) to over 2000
	    (take ages, can be used for nasty traps) with typical
	    values being 8,16 or 32.
	    For realism, place some of these on both sides of the wall
	    as well.

	 *  Place a T [0,Channel] in any sector. It will go off as
	    soon as the player enters the sector.  *Notes*

	 *  You can blow several walls open simultaneously, but don't
	    use different delays - the world shakes, but the holes
	    only appear when the highest-numbered D blows.

     6.2.4  Mirrors

     6.2.5  *Light switches*

     Light switches turn the light in one or more sectors on and off
     ('on' is very bright, 'off' is the original light level).  *Setup*

	 *  Place a switch (eg 164) [0,Channel] sprite anywhere.

	 *  The sectors to light up need an S [Channel,12].  *Notes*

	 *  You can use several switches on the same channel, they
	    operate simultaneously.

	 *  Switches work just fine if used on their own - perhaps
	    this could be used by players to communicate?

     6.2.6  *Doors*

     Ignoring simple doorways, real doors come in several flavours,
     consisting of one or more moving sectors and some tags.
     Note that all tags must be inside the door sector(s), not right
     on the edge (turn off grid locking ond place it real close to the
     edge, if necessary).  *Standard hinged*

     A hinged door opens by rotation 90 degrees sideways.
     The door sector [0,23] contains three tags:

     S		    [11,Channel]
		    The location of the sector effector defines the
		    rotation axis, the direction the rotation
		    counterclockwise turn
		    clockwise turn

     Sp 	    [0,Speed]
		    Speed ranges from 8 (very slow) to over 1000 (real
		    fast). ## I think you can leave this sector away
		    for a default speed, but I'm not sure about this.

     M		    [Sound2,Sound1]
		    Sound1 is the sound number to play when the door
		    is opened, Sound2 when it's closed. Usually, these
		    sounds will be the same.


	 *  The doors floor texture doesn't rotate, but the ceiling
	    one does.

	 *  Make sure that the door doesn't rotate out of its original
	    sector (for example, into a room with a higher ceiling) as
	    the graphics will mess up. Thus the sector containing the
	    door sector has to be large enough.

	 *  You can open/close several doors simultaneously (building
	    double doors, for example) by allocating each door the
	    same channel.  *DOOM-type door*

     This door opens by remote control (a switch) by raising the
     ceiling from the floor, delays a moment, and lowers the ceiling
     onto the floor again, closing the passageway.


	 *  Switches (132) [0,Channel] can be placed anywhere. Must be

	 *  The door sector [0,20] contains 4 tags:
	    M	[ClosedSound,MovingSound] (eg 0,167)
	    Sp	[0,Speed] (eg 0,88)
	    S	[OpenDelayTime,Channel]
	    A	[0,Channel]


	 *  Switches can be hidden by letting the sprites face the
	    wall and adding another sprite facing the player on top of
	    it (as done in the toilet of E1L2 with the blowdryer).

	 *  If the door is half-open at game start, it will close

	 *  Don't make OpenDelayTime (the time to wait after closing
	    the door again) too short! A door with a value of 128 will
	    close real quick. If the time passes before the door has
	    fully opened, it will malfunction (could be used by
	    design, though).  *Sliding sideways*

     This door works by moving/shrinking a sector sideways. A perfect
     example of this can be found in E1L3 (Death Row), just to the
     right of your starting point.
     Building this door is easier to do than to explain, so bear with
     me :) As soon as I have a better idea as to what exactly is
     happening, I'll be able to explain this better...

     Let's assume the door slides from the right into the left wall
     when opening. We build the door in stages:

     * The Entrance Sector, which contains the doorway.
     First, we assign a sector (eg, connecting two rooms) which we'll
     call the Entrance Sector. We're actually moving a sector
     containing a one-sided wall, so the whole visible height will
     move. This means that a sliding door is typically found in a low
     passage, connecting two higher rooms.

     * The Moving Sector.
     Insode the Entrance Sector, insert two points below each other on
     the left wall. From these, you now build a sector extending into
     the Entrance Sector (in effect, the Entrance Sector will split
     into an U-shaped Entrance Sector and a narrow moving sector)

     * The door.
     The door is actually made up of one-sided walls: insert two
     points on the left wall inside the Moving Sector and pull them to
     the right, creating the door itself.
     You'll actually want to insert three points, creating a pointed
     door which doesn't cover the Moving Sector completely but leaves
     two wedge-shaped pieces open into which we'll add some tags:

     * The tags.
     S [Channel,15], facing right
     M [DoneSound,MovingSound]

     * The left wall
     Insert two points on the left wall of the Entrance Sector: one
     above the Moving Sector (call it P1) and one below it (call it
     Now take the two inner points (the ones connecting the left wall
     with the Moving Sector) a straight towards the left (not too
     far), extending the Moving Sector in the process.
     Finally, move P1 onto the upper line of the door and P2 ontoo the
     lower one.

     Phew! Looks weird, because so many unconnected lines and points
     are overlaying each other (obviously, you should work with Grid
     Lock on) but it should work.


	 *  A typical sliding door texture is 447.

	 *  So far, I've only gotten this door to open half-way ##.
	    Evidentially, there's an additional, flat sector involved
	    (see e1L3), but I haven't gotten it to work yet.

	 *  Changing the heading of the sector effector produces
	    interesting (and usually, buggy) results.

     6.2.7  *Shrinking sector (remote control)*

     This will shrink a sector (for example a curtain) by on the press
     of a button. ## I haven't gotten the sector to regrow, however.  *Setup*

	 *  Place one or more switches anywhere

	 *  Inside the sector to shrink [0,27], place three tags:
	    S  [Channel,20] facing the movement direction.
	    A  [0,Channel]
	    Sp [0,Opening Speed]

     6.2.8  Elevators

     6.2.9  *Teleporters*

     Teleporters move players instantly between any two points.  *Setup*

     Teleporters are not sectors, but simply sector effectors. They do
     need the floor tile 626, though:
     S [7,Channel], facing is the same the arriving player should
     face.  *Notes*

	 *  A teleporter without a floor tile 626 only act as

	 *  A single teleporter without a destination will kill the

	 *  When usgin more than two teleporters on the same channel,
	    you always land on the teleporter with the lowest sprite
	    number. If teleporting from the lowest sprite number, you
	    end u on the next-highest one.

	 *  Teleporters don't work if you fly over them.

	 *  ## I've had strange effects when firing rockets into two
	    teleporters set up in a line - the rocket reappeared
	    _behind_ me, angled slightly to the right (thankfully :)
	    Any ideas?

     6.2.10  *Swimming pools*

     Swimming pools allow the player to jump into the water and dive
     around under the water surface.  *Setup*

     A swimming pools consists of at least two sectors: one is the
     room above the water, one is the room below it. An teleporter
     secretly moves the player (and any other objects, like pipebombs)
     between the levels as required.
     The sectors sharing the water surface have to be the exact same
     size and shape (of course).
     The teleporter connecting them needs a unique channel number.

     Above-water sector
		    S [Channel,7]

     Below-water sector
		    S [Channel,7]  *Notes*

	 *  The floor/ceiling types for the water surface don't matter
	    - all objects will always be transported correctly, water
	    will splash, etc.
	    This allows you to generate hidden traps, mud, etc.

	 *  If you split a pool into several sectors (for example in
	    order to create a pool with a shallow and a deep end), you
	    have to split the above-water sector as well and add a
	    sector effector in each new sector.  *Tips*

	 *  Nothing to stop you from adding sector to the below-water
	    sector, forming an underwater tunnel leading somewhere
	    else; perhaps even surfacing in a different pool.

     6.2.11  The Grapplers

     6.2.12  Floors above floors

     6.2.13  Morphing ramps

     6.2.14  *Vehicles*

     ## I haven't yet managed a subway - they always turn into
     attacking vehicles (next section).

     6.2.15  *Attacking vehicles*

     Vehicles (simply a sector with a raised floor) can be set up to
     travel from their original position to a pre-determined closed
     path, which they will follow, attacking any visible player with
     rockets (like the space fighter at the start of E2L1).  *Setup*

	 *  The vehicle sector requires an S [0,6]. The position of
	    this tag determines the rotation center when turning, and
	    its direction the facing of the vehicle.

	 *  Mark the route with several L+ [Pause,VisitingOrder].
	    A Pause of 0 means smooth movement, a 1 means a short
	    pause at the _next_ L+.
	    The tags are visited in their VisitingOrder, starting from
	    0.  *Notes*

	 *  The vehicle must start in the same sector as its route, as
	    the game will reuse to run otherwise. Thus you can't, for
	    example, cause a car to come out of a low garage and
	    circle around outside afterwards.

	 *  You can have several vehicles following the same route.

	 *  You can also design a vehicle using several sectors, but
	    they will rotate individually at each L+. Rather use a
	    'bounding' sector, containing the S.

     6.3  Tips and tricks: New and interesting effects

				 Chapter 7

			Programming the .CON files

				 Chapter 8

			   Utilities and add-ons

     8.1  Editing utilities

     8.2  Data files

     8.2.1  Graphics

     8.2.2  Sounds

     8.2.3  Music

     8.2.4  .CON modifications

     8.2.5  Demos (Recordings)

     8.2.6  Missions  *GRP Authoring Template v0.1*

     Note that I've simply taken and modified the v1.4 of the
     "Official" GRP Authoring Template - ## any objections?

     For all of you map authors out there, here is the "Official" GRP
     Authoring Template v0.1. When you release your map, please fill
     this form out and place it in the information file you create
     about your new map. This way we'll easily be able to compare

     Thanks to Steve Bareman ( for creating
     a WAD about file standard.

     GRP Authoring Template V0.1   (Clip this line)
     Title		     :
     Filename		     : xxxx.MAP
     Author		     : Your name here
     Email Address	     :
     Misc. Author Info	     :

     Description	     : Set the mood here.

     Additional Credits to   :
     * Play Information *

     Episode and Level #     : ExMx (,ExMx,...)
     Single Player	     : Yes/No
     Cooperative 2-8 Player  : Yes/No
     Deathmatch 2-8 Player   : Yes/No
     Difficulty Settings     : Yes/Not implemented
     New Sounds 	     : Yes/No
     New Graphics	     : Yes/No
     New Music		     : Yes/No
     New Programming	     : Yes/No

     * Construction *