Contents

Introduction

Starting WinDEU

WinDEU Main Menu

The Level Editor

WAD file description, flags, etc...

Special DOOM Areas.  Lifts, Doors, and more!

How to try out your new level(s)

Troubleshooting

Tutorial

Tips


Introduction

WinDEU 1.0: Windows DOOM  Editor Utilities

based on the code of

DEU 5.21: DOOM  Editor Utilities

WinDEU is an extremely powerful Windows based editor that enables you to add your creativity to one of the most exciting PC games on the market...

D   O   O   M

© id software

(Please read the file README.1ST first.  It contains important information about copyrights and trademarks.)

WinDEU is based on the DEU 5.21 source code (for about 60%). The current version of WinDEU partialy support DOOM 2.

See also: WinDEU Features, Starting WinDEU


WinDEU Features

Full Function Level Editor

 Most doom structures can be edited. (Things, Vertices, Linedefs, Sidedefs, Sectors, Demos, more...)

 Create a Level From Scratch.

 Modify existing id levels or user created levels.

Special Features

 Insert a Predefined object

 Rectangle

 Nsided Polygon

 'DragnDrop' stretching and shrinking of sectors.

 Scale and rotate sectors, linedefs, vertices, or things.

 Quickly define an area (selection box) and mass select everything in it.

 Sector floor/ceiling height distributor for easy stairways.

Diagnostic Tools

 Detects WAD errors.

 Warns you if you've forgotten player start things.

 Can automatically correct some problems.

 Use this to fix those problem wads, even if you created them with other editors.

 Note:	if the other editor uses nonstandard constructs you may not be able to take the WAD back to the other editor.

WAD File merging capability.

 Load and Merge multiple levels into a single WAD file.

Import RAW data into DOOM object and save it in a PWAD.

Renumber Maps to different Episodes and Levels.

Much Much More!

Try it and see.  Just WinDEU it!

See also: Starting WinDEU


Starting WinDEU

WinDEU may be started by executing WinDEU in the Program Manager, or be creating an icon for the program. Sorry, but there's not yet an "install" program.

 Note:	VERY IMPORTANT for you guys who never read help files: WinDEU need to know where is the DOOM.WAD (or DOOM2.WAD) file. So, you *MUST* edit the WinDEU.INI file and modify the line "main=..." to set up the path of your Doom main wad file.

 Ex:	main=c:\games\doom

WinDEU [options]

 Start WinDEU with the default IWAD file, DOOM.WAD and no PWADs.

WinDEU [options] file <PWAD file> [<PWAD file>...]

 Start WinDEU with the default IWAD file and the PWAD file(s) given.

WinDEU [options] w <IWAD file>

 Start DEU with the specified main IWAD file (DOOM.WAD or DOOM1.WAD).

See also: Command Line Parameters, WinDEU initialization file


Command Line Parameters

 Note:	The command-line options of WinDEU are just for compatibility with DEU. You will probably never need them.

 Note:	The effect of the Boolean options (i, s0, ...) may be reversed by using a '+' instead of a '-'.  For example, '+i' means 'no info bar'.

-help

 View command line options without entering WinDEU.

 -a	(-addselbox)

 Additive selection box.  Objects will be added to the current selection (when you use the selection box) instead of replacing the current selection by what is in the box. Note:	With WinDEU, you can easily use an additive selection box with the SHIFT key, so this option is now obsolete. See Mouse Commands

 -d	(-debug)

 Debug mode.  Will produce a log file of warning messages to help track down LineDefs that have problems.  The number of the bad LineDefs will be listed.  This file will be called "WINDEU.LOG". The log file will also have timestamps.

 -e	(-expert)

 Expert mode.  Doesn't ask for confirmation of some operations (e.g. deleting an object or rebuilding the Nodes).

i   (infobar)

 Display the info bar in the level editor.

sb   (swapbuttons)

 Swaps the left and middle mouse buttons.

 Note:	This option was removed from WinDEU (just use the Windows "Control Panel" to do this)

q   (quiet)

 QUIET! suppresses the sound made when you select or mark an object.  Use it if you're in a library :)

qq   (quieter)

 QUIET^2!  Complete silence.  WinDEU will not make any sound, not even for warnings. Enjoy the Silence...

z <zoom>   (zoom)

 ZOOM.  Specify initial zoom setting.

c   (color2)

 Use the alternate color set for displaying the Things.

w <main wad file>   (main)

 Specify name of main wad file (e.g. DOOM.WAD).

file <pwad, pwad, ...>

 Load patch WAD file(s), just like with DOOM. Note: Patch wad files may also be loaded from the "File" menu.

pw <pwad>   (pwad)

 Add ONE patch file to be loaded.

bgi <video driver name>

 Use another BGI video driver for hires modes (default = "VESA").

 	Note:	This option was removed from WinDEU.

v <video mode number>   (video)

 Set the default video mode for the extended video driver. (default = 2, this is 640x480x256 colors for the VESA driver).

 	Note:	This option was removed from WinDEU.

fc   (fakecursor)

 Use a "fake" mouse cursor.  This option is useful is your mouse driver is not compatible with SuperVGA resolutions (see [8.2]).

 	Note:	This option was removed from WinDEU.

sf   (splitfactor)

 Adjust scale on the nodes builder.  This parameter is for those techie types that like to fiddle with things.  There is no need for the average user to worry about this parameter.  (The default value of 8 is the same value that id software uses.  A number less than 8 means "more balanced" and a number higher than 8 means "least splits".  Use this parameter at your own risk.  We recommend the default value of 8.)

s0   (select0)

 Select object 0 when switching modes.

config <ini file>

 Specify an alternate DEU configuration file other than WinDEU.INI

See also Preference Settings, Initialization file WinDEU.INI


Preferences Settings

The following allow you to assign default values for textures when creating new areas in your level.

walltexture <texture>

lowertexture <texture>

uppertexture <texture>

floortexture <texture>

ceiltexture <texture>

floorheight <units>

ceilheight <units>

See also: Initialization file WinDEU.INI, Command Line Parameters


Initialization file

Initialization file WinDEU.INI

Rather than using command line arguments you may wish to save your typical settings in the WinDEU.INI file.  It's structure is pretty basic.  Use your favorite text editor to check it out.

 Note:	This syntax of the WinDEU.INI file is a little bit different from the usual syntax of Windows INI file (i.e. comments are introduced by "#" instead of ";", no sections, ...).

 This may be changed in future version of WinDEU, but, for now, WinDEU still uses the syntax of DEU initialization file.

ALL of the command line options may be used in WinDEU.INI with the exception of "help" and "config".  Commands in WinDEU.INI should be completely spelled out (i.e. quiet=true, not q=true)

Also, don't put the "" in front of commands in the config file.

And now your bonus for reading this far...

Add the following line to your DEU.INI file:

#*****************

reminder1 = false

#*****************

This will turn off the opening reminder to read the documentation.


Main menu

WinDEU Main Menu

The WinDEU main menu is used for WAD file manipulation. The main menu has two popup menus: File and Editor.


File popup menu

Open .WAD file

 Open a previously saved patch WAD file.

 1.	Select the .WAD file in the file dialog box. The .WAD file entries are added to the Master File Directory.

 2.	Go to the "File.List opened .WAD files" menu item to see the entries for this WAD file

 Note:	If you load a PWAD with multiple levels (or sounds, demos, graphics, etc..) and edit a level, THE SAVE COMMAND WILL ONLY SAVE THAT MAP, not any other levels, graphics, etc...  DO NOT name it the same as the multilevel PWAD.

Group .WAD files

 GROUP all opened PWAD files in a compound PWAD with the given file name.  Using this option, you may put several levels, graphics,  sounds, demos, etc.. in a single file.

 1.	Select the .WAD file name in the file dialog box

 2.	Wait for the .WAD file to be constructed

Build new main

 BUILD new IWAD file (all 10+Megs of it) with the given file name.

 WARNING:	Do not name your file DOOM.WAD or you will overwrite the existing DOOM.WAD file and you will have to reinstall DOOM to get back your original file.

 1.	Select to .WAD file name in the file dialog box

 2.	Wait for the main .WAD file to be constructed. This procedure may take some time, because WinDEU has to write 10Mb on disk.

Save object

 Save one object to a separate WAD file.

 1.	Enter the object name in the input box.

 2.	Select the WAD file name.

I nsert RAW file

 Include a raw binary file in a PWAD.  You can use this to replace certain doom objects.  You should read DMSPEC13 (Doom Specs 1.3) or higher to know what to call the objects.

 *WARNING*	This is NOT for novices!

 1.	Select the data file (.RAW) to be included in the file dialog box

 2.	Enter the name of the object in the input dialog box

Extract object

 Extract and save one object to a separate .RAW file.

 1.	Enter the object name in the input dialog box

 2.	Select the data file name (.RAW) in the file dialog box

List directory

 LIST the structure of the directory of a opened file.

 1.	Select the .WAD file

List master

 List the MASTER directory of the IWAD and any PWAD files, all mixed together.

List opened .WAD files

 List all the opened wad files and their entries.

 1.	Select the WAD file you want to list in the list box

 1.	Check the "Only level map" check box to display only the level entries of a WAD file

Exit

 Quit WinDEU.


 Editor popup menu

Edit level

 Edit a level.

 1. Select the level number you want to edit.

Create level

 Create and edit a new (empty) level.

 1.	Select the level number you want to edit.

Dump entry

 Dump in hex/ascii an object in the Master File Directory.

 1.	Select the object name to dump.

View Sprites

 View the Sprites.

 1.	Select the sprite name in the list box.

 2.	Use the Gamma Level slider to choose a good light level.

 3.	Use the Zoom slider to select a good size

 4.	If the Sprite is too big to be enterely displayed in the window, use the scroll bars or click the mouse button inside the window and move the mouse to scroll through the picture.

 Note:	You will need at least a 256 color driver to see the real colors of the Sprites.

View Wall textures

 View the Wall textures.

 1.	Select the texture name in the list box.

 2.	Use the Gamma Level slider to choose a good light level.

 3.	Use the Zoom slider to select a good picture size.

 4.	If the texture is too big to be enterely displayed in the window, use the scroll bars or click the mouse button inside the window and move the mouse to scroll through the picture.

 Note:	You will need at least a 256 color driver to see the real colors of the textures.

View Floor/Ceiling textures

 View the Floor/Ceiling textures.

 1.	Select the texture name in the list box.

 2.	Use the Gamma Level slider to choose a good light level.

 3.	Use the Zoom slider to select a good picture size.

 4.	If the texture is too big to be enterely displayed in the window, use the scroll bars or click the mouse button inside the window and move the mouse to scroll through the picture.

 Note:	You will need at least a 256 color driver to see the real colors of the textures.


Level editor

The Level Editor

The level editor displays a graphical "map" of the level showing lines where walls are, x's where things are (Red one are enemies, green ones are player start positions, and the rest are white.)  There is an info bar available which displays information about the mode you are in.  There are windows to let you know what thing is selected and windows that let you know what you can do to it.

There are four different editing modes.  They are:

Things Mode

 Change what Enemies, Weapons, Players, Bonuses, and Decorations appear when and where.

Vertices Mode

 Modify points used to set up other doom structures.  The vertices are the lowest level structure in a DOOM map.

Linedefs & Sidedefs Mode

 Set up the lines where walls and triggers are.

Sectors Mode

 Define rooms or areas.


Keyboard Quick Reference

Key	Action
Q	Quit
Esc	Exit (no save)
Arrows	Move pointer
Scroll Lock	Autoscroll on/off
Space	Scroll slow/fast
+,	ZOOM in or out
Tab	Next mode
Shift Tab	Previous mode
N	Next object
P	Previous object
J	Jump to object #
M	Mark/Unmark object
C	Clear all marks
O	Copy Object(s)
D	Drag mode Toggle
G	Set Grid Scale
H	Hide/Show Grid
Enter	Edit object(s)
Ins	Insert object(s)
Del	Delete object(s)
F1	Help
F2	Save
F3	Save As
F4	Search
F5	Preferences
F8	Miscellaneous Operations
F9	Insert Predefined objects
F10	Check consistancy
 See also:	Additional keys, Keyboard command full description


Additionnal speed keys

Additional Speed Keys

Key	Action
1,2,...,9,0	Direct Zoom setting
T	Things Mode
V	Vertices Mode
L	Linedef/Sidedef Mode
S	Sector Mode
>	Next Object
<	Previous Object
#	Jump to Object #
ShiftH	Grid Scale = 0
I	Info Bar On/Off
R	Ruler/Normal Cursor
Shift+Ins	Insert Lines and close sector
Shift	Move Pointer without selecting new object
Shift+[Mark]	Box Object Selection
 See also:	Keyboard commands full description, Keyoard quick references


Keyboard Commands Full Description

Q

 Quit, saving changes.  You will be asked for the name of the PWAD file.

 Note:	If you load a PWAD with multiple levels (or sounds, demos, graphics, etc..) and edit a level, THE SAVE COMMAND WILL ONLY SAVE THAT MAP, not any other levels, graphics, etc...  DO NOT name it the same as the multilevel PWAD.

TODO:

Scroll Lock

 Turn on/off the autoscroll feature.

TODO:

Space

 Toggle slow/fast movement speed and the scrolling speed.

+, -

 ZOOM in or out. (Change the map scale.)   ZOOM levels range from 1/20 scale (smallest) to 4/1 scale (major magnification).

1,2,...,9,0

   Set ZOOM level from 1 to 10 directly.   (1/1  1/10)

Tab

 Switch to the next editing mode.

Shift+Tab

 Switch to the previous editing mode.  If objects are marked, the objects they are built from remain marked.

T

 Switch to the Things editor.

V

 Switch to the Vertexes (vertices) editor.

L

 Switch to the LineDefs/SideDefs editor.

 S

 Switch to the Sectors editor.

N, >

 Select the next object.  This will only work if the pointer is not on an object.

P, <

 Select the previous object.  This will only work if the pointer is not on an object.

J, #

 Jump to a specified object (enter number).

M

 Mark/Unmark current object.  (See also the 'Shift' key below).

 	* Objects stay marked until you unmark them. *

C

 Clear all marks.

O, Ctrl-C

 Copy objects.  After pressing O, the new objects are selected, so you can simply click on one of them and move the mouse pointer to their new location on the map.

D

  Toggle Drag mode.

G

 Show the grid and change its scale.  Press it again to increase the number of grid lines thus decreasing the scale.  Use ShiftG to increase the scale.

H

 Hide/Show Grid.  This only controls whether or not grid lines are displayed.

Shift+H

 Toggle 'snap to grid'.

I

 Show or hide the info bar at the bottom of the screen.

TODO:

R

 Toggle between Normal Cursor and Ruler Cursor.

Enter

 Edit current object or group of selected objects.  A dialog box will pop up and you will be allowed to change attributes in the object(s).

Ins

 Insert a new object at the current cursor position. This will copy the last selected object or insert a default object.

 There are two special cases:

 1.	When a group of vertices are selected and you press "Ins": the editor will add new LineDefs between the vertices and will put you in the LineDefs editor.  The editor will create linedefs for all but the last line. (Use Shift+Ins if you want to close the polygon).

 2.	When a group of LineDefs are selected and you press "Ins" a new Sector will be created and one SideDef in each LineDef will be bound to this Sector and the edit mode will switch to the Sector editor.

Shift+Ins

 Use this when selecting groups of vertices and want the editor to close the polygon.

Del

 Delete the current object or group of objects.  All objects bound to the current object will also be deleted. (i.e. if you delete one Vertex, this will also delete the LineDefs that used this Vertex).  Except for Things, you will be asked for confirmation before the object is deleted.

Shift

 Hold the Shift key while moving the cursor to prevent the pointer from selecting a different object.

F1

 Help screen.

F2

 Save level in a PWAD file.

F3

 Save As... (Change Episode and Level Number). This will allow you to reassign the episode and level number of a map.  Enter a file name, then select the episode/level number.

F4

 Search for Object  (Not yet implemented)

F5

 Preferences. Use this to change the default values for wall, floor, and ceiling  textures, and floor and ceiling heights.  These defaults are for your current WinDEU session only.  You may change the defaults for all WinDEU sessions by editing WinDEU.INI (See WinDEU initialization file).

F8

 Miscellaneous Operations. The options that appear on this key vary depending upon which editing mode you are in.  However, the first option is constant, no matter which editing mode you are in.

 1. Find First Free Tag

 This will locate the first tag number which has not yet been used in this map.  The number it returns will be the lowest available tag number.

 The rest of the options available vary by mode and are (by mode):

 Things Mode

 2. Rotate and Scale Thing(s)

 Move marked things by the degree of rotation and a percentage scale.  This will allow you to rearrange things by spinning them around (change rotation angle) or moving them closer to each other (scale < 100%) or further apart (scale > 100%).

 Vertices Mode

 2. Rotate and Scale Vertices

 Move marked vertices by the degree of rotation and a percentage scale.  This will allow you to rearrange vertices by spinning them around (change rotation angle) or moving them closer to each other (scale < 100%) or further apart (scale > 100%).

 3. Delete Vertex and join Linedef(s)

 Deletes the marked vertex and joins linedef(s) that were previously connected to it.

 4. Merge several vertices into one.

 Same as #3 above, but with multiple vertices.

 5. Add linedef & Split Sector.

 You must mark exactly TWO vertices from the SAME sector before calling this command.  This will add a linedef and a new sector.

 Linedefs & Sidedefs Mode

 2. Rotate and Scale LineDefs

 Move marked linedefs by the degree of rotation and a percentage scale.  This will allow you to rearrange linedefs by spinning them around (change rotation angle) or moving them closer to each other (scale < 100%) or further apart (scale > 100%).

 3. Split LineDef (add new Vertex)

 Splits the selected linedef(s).

 4. Split LineDefs and Sector

 Splits the selected linedefs by adding a vertex at the midpoint, connecting the new vertices with a linedef which divides the original sector.

 5. Delete LineDefs and join Sectors

 Removes the selected twosided linedef(s) that divide sectors and makes them into a single sector.

 6. Flip Linedef

 Flips the linedef(s) start and endpoints, thus reversing the side the 1st and 2nd sidedefs are on.

 7. Swap Sidedef

 Swaps the sectors that sidedef(s) 1 and 2 are tied to.

 8. Align Textures  (Y offset)

 Align the textures on the Y offset.  The first linedef selected is used as the reference point.  This is for Up/Down alignment.

 9. Align Textures (X Offset)

 This may be used on a group of linedefs that follow each other.  The first linedef selected is used as the reference.  This is for left/right alignment.

 Sector Mode

 2. Rotate and Scale Sectors

 Move marked sectors by the degree of rotation and a percentage scale.  This will allow you to rearrange sectors by spinning them around (change rotation angle) or moving them closer to each other (scale < 100%) or further apart (scale > 100%).  This will NOT move the "Things" in the sector.  After rearranging the sector, you may have to go into things mode and select them and do the same rotation/adjustment on them.

 3. Make door from sector

 To use this, select a sector that is between two other sectors and then activate this function.  The Linedefs, Ceiling height, textures, etc... will be modified accordingly.

 4. Make lift from sector

 To use this, select the sector that is to become the lift and then activate this function.  The Linedefs, textures, etc... will be modified accordingly.

 5. Distribute Floor heights

 This function will take the difference in floor heights between the first and last sector selected, divide it by the number of sectors in between and then distribute the result across the floor heights of the inbetween sectors. This is very useful for setting floor heights on stairways.

 6. Distribute Ceiling heights

 This function will take the difference in ceiling heights between the first and last sector selected, divide it by the number of sectors in between and then distribute the result across the ceiling heights of the inbetween sectors.  This is very useful for setting ceiling heights on stairways.

 F9	Insert a predefined object.

 This function has two different modes depending upon where the pointer is located.  The two conditions are 1. Inside of a sector and 2. Outside of sectors (not inside ANY sector).

 Outside of sectors

 1. Insert a Rectangle

 Enter the width and height (length) of the rectangle and WinDEU will automatically insert the vertices, lindefs+sidedefs, and sector at the current pointer location.  Think of this as adding a rectangular room.

 2. Insert a Polygon (Nsided)

 Enter the number of sides and a radius and WinDEU will automatically insert the vertices, linedefs+sidedefs, and sector at the current pointer location.  You can do anything from a triangle to a 32 sided polygon.  Think of this as adding a Nsided room.

 Inside a Sector

 1. Insert a Rectangle

 Same as outside a sector, but first sidedefs will be set to the sector they are contained in.  Think of this as inserting a rectangular pillar.

 Note:	Pressing "Ins" after inserting the rectangle will create a new sector inside the rectangle and cause the walls to be changed to transparent.  Use this to define a new area inside a sector.

 2. Insert a Polygon (Nsided)

 Also the same as outside a sector, but the first sidedefs will be set to the sector they are contained in.  Think of this as inserting an Nsided pillar.

 Note:	Pressing "Ins" after inserting the polygon will create a new sector inside the polygon and cause the walls to be changed to transparent.  Use this to define a new area inside a sector.

 3. Stairs

 Insert a stairway.

 (Not yet implemented.)

 4. Hidden Stairs

 Insert a hidden stairway.

 (Not yet implemented.)

 F10	Check level consistency (Diagnostics)

 When using the following diagnostics if an error is reported you can press return to continue checking or press Esc to select the problem object.

 1. Number of Objects

 This option gives a count of the number of things, vertices, linedefs, sidedefs, and sectors.  It also displays the amount of bytes needed to store this information in a PWAD file (Rounded to the nearest Kbyte).

 2. Check if all sectors are closed.

 This will test all sectors and make sure they are closed.  If they are not closed it reports the number of the unclosed sector.

 3. Check cross references

 Verify the integrity of the level and help locate possible problem areas.  This will help to locate orphaned sidedefs, etc.  This will also remove extraneous LineDefs if there are two LineDefs between the same vertices.

 4. Check for missing textures.

 Report any sidedefs that may need to have a Normal/Upper/or Lower texture defined.

 5. Check Texture Names.

 Some other editors will let you enter texture names which are not correct.  This function will help fix their mistakes.


Mouse Commands

WinDEU use a *New* mouse interface. I made it to be like most Windows editing application, and I think it couldn't be worse than with DEU.

If you have a mouse, the following actions are available:

Left button

 Mark an object if non marked, else does nothing

Shift + LMB

 Mark/Unmark an object

LMB Double Click

 Edit seleted objects if pointer on an object.

Right button

 Display context sensitive edit menu if pointer on an object, else display a general edit menu.

Shift + RMB

 Center map around pointer

Mouse move

 If LMB pressed:

  if pointer on an object, begin 'Drag mode'

  else, begin 'Stretch selection box' mode. If SHIFT key pressed, the selection box will be additive

 Else

  select new current object under mouse pointer (if SHIFT key not pressed)

 Note:	These explications may seem complicated, but just try in the editor, and it will be easy to understand.


The menu bar

[4.4] The Menu Bar

Along the top edge of the Level editing screen there is a PullDown menu bar with a number of options including File, Edit, Search, Modes, Objects, Misc, and Help.  These menu options can be pulled down by either pointing and clicking on them or by holding down the ALT key and pressing the Underlined letter from the menu bar.  Once the menu is pulled down press the highlighted letter of the command to use it.

The functions on the PullDown menus are as follows:

File [ALTF]

 Save

  Save the level as a WAD file.

  Save As

 This will allow you to reassign the episode and level number of a map.  Enter a file name, then select the episode/level number.

  Print

  (Not yet implemented)

  Print a picture/description of the map.

  Quit

 Exit the level editor.  Save file if changes have been made.

Edit [ALTE]

  Copy Object

 Used to copy (groups of) things, vertices, linedefs and sidedefs, or sectors.

 Add Object

 Same as "Ins" key.  (See long description above)

 Delete Object

  Same as "Del" key.  (See long description above)

 Preferences

 Use this to change the default values for wall, floor, and ceiling textures, and floor and ceiling heights. These defaults are for your current DEU session only.

 Search [ALTS]

 Find/Change

 (not yet implemented)

 Search for a specific object type.

 Repeat last find

 (not yet implemented)

 Perform the search again to find the next match.

 Next Object

 Go to next object.

 Prev Object

 Go to previous object.

 Jump to Object #

 Go to a specific object number.

Modes [ALTM]

 (Changes current editing mode.)

 Things Mode

 Linedefs & Sidedefs

 Vertices

 Sectors

 Next Mode

 Last Mode

Misc [AltI]

 (Same as F8 keyboard command.  See description of F8 key above.)

Check [ALTC]

 (Same as F10 key in Keyboard commands. See description of F10 key above.)

Help [ALTH]

 Keyboard & Mouse

 Same as F1 key.

 Info Bar

 Turn on/off Info Bar at bottom of screen.  This bar displays editing modes, grid size, and zoom levels.

 About WinDEU...

 Brief information about the WinDEU and DEU programmers and the contributed work from the net.


Wad file description

[5] WAD file description, flags, etc.

The DEU works by editing the database that DOOM uses to store its information about each of the levels.  These database files are called WAD files.  There are two types of WAD files.

IWAD File:

 This is the main data base file. It contains all the information about the graphics, sound, level maps, etc of the game.  There is only one IWAD file called DOOM.WAD and it must be in the current directory when DOOM is run.

PWAD File:

 This is a special patch of the IWAD file.  It contains updates about the IWAD file.  PWAD files created by DEU will contain an updated map of a game level. PWAD files can be called anything.  When running DOOM, DOOM must be told to load a PWAD file.  This is done with the FILE parameter.  PWAD files are small so they can be easily shared.


Description of Vertices

[5.1] Vertices (description of)

Vertices are simply points.  Each vertex has an x,y coordinate on a map. DOOM maps are 2 dimension so there is no z coordinate.  Vertices are used as the starting and ending points of LineDefs (see below).


Description of LineDefs

[5.2] LineDefs (description of)

Lines which define boundaries in the map. These boundaries define the borders of a sector or the location of a trigger that you walk across. Each LineDef has a starting vertex and and ending vertex. There is a first and second side to every LineDef. Either side may have a reference to a SideDef. LineDefs are also what is used as triggers and/or switches for special sectors.


Description of SideDefs

[5.3] SideDefs (description of)

Every visible side of a LineDef must have a SideDef. The SideDefs are used to put wall textures on. (See description of upper/lower/normal textures below.)  An enclosed set of SideDefs is what defines a Sector.


Description of Sectors

[5.4] Sectors  (description of)

A Sector is made up of a group of 3 or more enclosed SideDefs.  A sector can be viewed as a room or an area within a room.  Sectors contain ceiling and floor height information, ceiling and floor textures, special sector information (does it hurt to be there?  did you find a secret if you enter?)  Sectors are the only structure that "moves" in DOOM.  Lifts, Staircases, Doors, are all specially defined sectors.


Description of Things

[5.5] Things   (description of)

There are many types of Things in DOOM.  Player Start points, Enemies, Bonuses, Weapons, Keys, and Decorations.


Attributes of LineDefs

[5.6] LineDef attributes

Some abbreviations have been used for the LineDef attributes:

Flag	Bit	Description
Im	0	Impassible by players and monsters.
Mo	1	Monsters cannot cross this line.
2S	2	Twosided wall/may shoot through.
Up	3	Upper texture is "unpegged".  Try it with moving ceilings or doors.
Lo	4	Lower texture is "unpegged".  Try it with moving floors or lifts.
Se	5	Secret.  This line appears as normal on the map.
So	6	Blocks sound.  The sounds won't travel past this line.
Ma	7	Invisible on the map.  Even with the "computer map" powerup.
In	8	Already on the map at startup.


Types of LineDefs

[5.7] LineDef types

The first two letters in each LineDef type give its features.

The first letter may be:

D	Door	Press the spacebar to open it.

S	Switch	Press the spacebar to activate this LineDef.

W	Walk	Walk across this LineDef to activate it.

G	Gun	You need to shoot that LineDef to activate it.

Except for doors ("D") and the "end level" LineDefs, all linedefs that activate a sector need a "Sector tag" number and at least one Sector with the same tag number to operate.

The second letter may be:

R	Repeatable.

1	Works only once.

Abbreviations are also used in the type name.  They refer to what happens to the Sector when triggered by this LineDef:

O  Stays Open

 Used only for doors.

N  Neighbor

 Usually, this means that the floor rises or  lowers until it reaches the floor height of an adjacent  sector on its way.  In the menus, I have used "Ne." instead.

T  Texture and Type change

 Same as above, but the texture and  type of the Sector are also changed.  The new Sector floor texture and type are copied from the Sector where the switch or walkthough LineDef is, not from the adjacent Sector(s).

C  Ceiling

 This means that the floor rises until it reaches  the ceiling height of one adjacent Sector.

<,>

 Used as modifiers for the above letters.  "<N" means that  the floor will stop just below a neighboring floor.


Normal, Upper, Lower textures

Normal/Upper/and Lower Textures

These are the three parts of a SideDef.

 1.	Upper Texture is used to account for variations in ceiling height. The SideDef facing the sector with the higher ceiling must have an upper texture defined.

 2.	Lower Texture accounts for variations in floor height.  The SideDef of a line that faces a sector with a lower floor height must have a lower texture defined.

 3.	The Normal Texture is used for the surface of the sidedef which is below the ceiling height and above the floor height.

 Note:	The LineDef/SideDef editor displays upper/lower texture boxes in RED if they are transparent and shouldn't be.  They will be grey if they are not visible and should be left transparent. If they are visible they will be black (transparent or not).  This is very helpful in eliminating the Hall of Mirrors (HOM) effect caused by missing texture assignments.


Special Doom areas

Special DOOM Areas.  Lifts, Doors, and more!

Tag numbers are used to uniquely identity a structure within the level.  There are tag numbers for both sectors and for linedefs. For example, if a switch is used to activate a Sector, then both this Sector and the LineDef with the switch will have the same

tag number.

Doors

Lifts

Teleporters

Rising stairs

Secret areas

Standard rooms


Doors

[6.1] Doors

A door is a Sector which usually starts with its ceiling at that same height as its floor (door closed).  When the player presses the spacebar, the ceiling will rise, opening the door.  On both sides of the door, you need one of the "D" LineDefs types.  You

don't need to give a tag number to the Sector or the LineDefs.

If you want to be able to open this door with a switch, then you need to give the same tag number to the Sector and the switch. Pick any number that is not used by another LineDef or Sector.

Front and Back sides of Door:

 The lines that you walk through on the door should be "passable" (not Impassable), and twosided (flags = 4).

 The Sidedefs that are on the outside of the door should NOT have a Normal or Lower texture.  They should have an Upper Texture. The Sidedefs on the inside of the door should not have any textures (Normal, Upper, or Lower).

Left and Right side of Door:

 Nothing special here.  You may want to pick a Doorlike texture for the sidedefs like "DOORTRAK".


Lifts

[6.2] Lifts

A lift is a sector surrounded by LineDefs with the "Lower lift" or "Raise lift" type.  All LineDefs between the upper floor and the lift will have the "Lower lift" type.  All LineDefs between the lower floor and the lift will have the "Raise lift" type.

Usually, you also have some "Lower lift" LineDefs on the lower floor, a few steps away from the lift.

The "Raise lift" type is a special case: when you cross this line, the lift will go up.  If the lift is already up, it will act as a switch that lowers the lift.

In the editor, you will see a short line on one side of the LineDef when you select it (this is the normal vector).  In the game, the player must come from this side or else the lift won't work.

Don't forget to give a tag number to the Sector and the LineDefs!


Teleporters

[6.3] Teleporters

You need two things to make a teleporter:

 	One LineDef with the "Teleport" type and a Sector with the same  tag number.

 	A special Thing in this sector, called "Teleport exit"/  "Teleport landing".

You may have several LineDefs that point to the same Sector, but you must have one and only one Sector with the same tag number.

This only works if the line is crossed from the right side (see Lifts). If the teleporter worked on the two sides of the LineDef, you wouldn't be able to exit from it!


Rising stairs

[6.4] Rising Stairs

A raising staircase is created by defining a set of adjacent sectors at the same elevation. The sector that will be the first (lowest) step is assigned a LineDef tag corresponding to a Linedef of the Raise Stairs type. Each step will raise to an elevation of 8 higher than its next lower neighbor, or 8 up from its original level in the case of the first step.

If we define a set of sectors at an elevation of 0 as shown below:

  +++++++++++

  |     |     |     |     |     |     |     |     |     |     |

  |     |     |     |     |     |     |     |     |     |     |

  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  A  |

  |     |     |     |     |     |     |     |     |     |     |

  |     |     |     |     |     |     |     |     |     |     |

  +++++++++++

with sector _1_ connected to a Raise Stairs LineDef, the sectors that will form the stairs are those sectors that

 1.	Are at the same elevation as the first 'step' sector.

 2.	Share a LineDef with a sector that is part of the stairs.

 3.	The _first_ SideDef of the shared LineDef is part of the stairs.

 4.	The shared LineDef has a _lower_ LineDef number than any other LineDef facing 'into' (by condition 3) the previous sector.

For example, if the linedefs were defined as follows:

  +++++++++++

  |     |     |     |     |     |     |     |     |     |     |

  |     |     |     |     |     |     |     |     |     |     |

|  1|  2|  3|  4|  5  |6|  7|  8|  9|  A|

  |     |     |     |     |     |     |     |     |     |     |

  |     |     |     |     |     |     |     |     |     |     |

  +++++++++++

If Sector 1 was the first 'step', then Sectors 2, 3, 4, and 5 would be part of the staircase. Because the LineDef between Sectors 5 and 6 'faces' _away_ from Sector 5, Sector 6 will not raise when the staircase is triggered. If Sector 5 had a Floor elevation of 10, it would not become part of the staircase; only sectors with their Floor levels at the same level as the first step will be part of the staircase, regardless of the 'facing' of the LineDefs connecting them.

The facing of the LineDefs making up the _sides_ of the staircase is important; you can make turning or spiral staircases, but you can also make staircases that elevate the floor of a room instead. Expanding the example, let us assume that Sector 0 is everything surrounding the sectors that are defined:

  +++++++++++

  |     |     |     |     |     |     |     |     |     |     |

  |    b|     |     |     |     |     |     |     |     |     |

|  1|  2|  3|  4|  5  |6|  7|  8|  9|  A| 0

  |     |     |     |     |     |     |     |     |     |     |

  |  |  |  |  |  |  |  |  |  |  |  |  |     |     |     |     |

  +|+|+|+|+|+|+++++

       a

Now the LineDefs that make up the lower 'side' of Sectors 1 through 6 'face' into the staircase. If the LineDef number of the LineDef between Sector 1 and Sector 0 (labelled 'a' above) is _lower_ than the LineDef number of the LineDef number of the LineDef between Sector 1 and Sector 2 (labelled 'b' above), then when the stair is triggered, Sectors 1 and 0 will rise, then Sector 0 will rise further. This is not likely to be what you want.

When creating a set of sectors to become an elevating staircase, make sure that either:

 a)	All the LineDefs _except_ the ones defining the path of the staircase face _away_ from the staircase's sectors, or

 b)	The LineDefs defining the path of the staircase, within a Sector, have _lower_ LineDef numbers than any other LineDef facing into that Sector.

The LineDef tag for sectors composing a staircase are, except for the sector that is the first step, irrelevant; the only use for nonzero LineDef tags in any other staircase sector is to have the editor flag the sector in a different color so the user can see where the limits of the staircase are. It is the sector elevation and the LineDef facing that determine the limits

of a staircase.


Secret areas

[6.5] Secret areas

All you need to create a "secret" area is to give the special type "Secret" to some Sector.  When the player steps on that Sector, the players secret ratio will be credited.

If the secret sector is behind a secret door (one that has nearlythe same color as the other walls), you probably don't want the door to be shown on the map (the automap uses different colors for walls and doors). You will need to toggle the "Secret" flag in the LineDef attribute.  Then the door will be shown as a normal wall on the map.


Standard rooms

[6.6] Standard Rooms

We already hear you say: "All this stuff about doors, lifts and so on is great, but how do I create a new room in my level?"...

Each room consists in one or several Sectors surrounded by impassable LineDefs.  If you want to have dark and bright zones in your room, then you will need to divide the area into several Sectors.  The LineDefs between these Sectors should have the "twosided" bit set and have a transparent texture ("").

The easiest way to add a new sector is with the 'F9' key.  Select the kind of shape that you want to insert, then enter its dimensions. Note that the position of the pointer is important when you press 'F9'. If the pointer is inside an existing Sector, then you will add an

obstacle (i.e. the new object won't have a Sector inside it  only walls).  If the pointer is outside, then you will add a real room (with a new Sector inside it).  You can use the "obstacle" type and add a new Sector inside it.  Just press 'Ins' while the LineDefs are still

selected.


How to try new levels

[7] How to try out your new level(s)

To Run DOOM with your new level:

 > DOOM FILE E1L1.WAD

 will load the normal doom game and the use the E1L1.WAD file to patch the data base.

More than one PWAD file can be loaded. E.g.:

 > DOOM FILE E1L1.WAD E1L2.WAD BRENDON.WAD RAPHAEL.WAD


Troubleshooting

[8] Troubleshooting

Hall Of Mirror effect

Can't relax after playing Doom?


Hall Of Mirror effect

Hall of mirrors effect  (HOM)

The hall of mirrors effect is an indication that something

is wrong with your map.

Two common causes of this problem are:

 You forgot to give a texture to one part of a wall.

 You have a transparent line which is shared by two sectors,

  but you forgot to set the "twosided" (2S) flag for the LineDef.

You should run all tests from the 'F10' menu to check for these errors.

If everything appears to be correct (no warnings during the checks), then

maybe you have too many twosided LineDefs in the same room.  There is a

limit in Doom's graphic engine on the number of twosided LineDefs that

can be displayed at the same time.  Solution: delete some of them.  Sigh!

But it may also be a problem with DEU's Nodes builder.  You may try to use

different values for the "splitfactor" command line parameter, and see if

that solves the problem (use positive values; 8 is the default; 16 or more

may solve some problems).  If that still doesn't work, you will have to wait

for the next release of DEU or use the excellent BSP program, available on

most FTP sites (look for bsp11x.zip).


Can't relax after playing DOOM?

[8.2] Can't relax after playing DOOM?  (Coming down off a DOOM rush)

Watch a Bob Marley concert video and have a smoke.    8}'


Tutorial

[9.0] Tutorial

The /TUTOR directory contains the deu tutorial, a sort of stepbystep

instruction booklet to creating a level from scratch.

Print the TUTOR.DOC file and follow along with the wad files.


Tips
 [10.0] Tips

Editing tips

Doom / WinDEU limits


Editing tips

[10.1]  Generic editing tips.

  SAVE YOUR WORK!

        SAVE YOUR WORK OFTEN (with different file names) and test it every

        so often to make sure it's looking like you want it to.  DEU makes

        a .BAK file but if things get really messed and you saved twice

        with the same file name you may lose your work.

  Inserting Linedefs

        When marking vertices to add linedefs, do so in CLOCKWISE order.

        This will make sure that the Normal (or first) side of the line

        is on the inside of your sector.  DEU likes this better and

        so will you!

        Use clockwise order if you want to add a new sector outside (not

        inside any sector).  This is the case most of the time.

        Use anticlockwise order if you want to add an obstacle inside an

        existing sector (i.e. all first sidedefs will be on the outside of

        the area you just defined).

  Texture Alignment

        All the texture sizes (Ceilings, Floors, and Walls) are based on

        multiples of 8 pixels.   You can use the grid feature to help

        align the length of linedefs.  You might even try mathematics

        (I know, it's scarier than Doom... ;)  See the TUTOR.DOC file for

        an example of using the texture alignment fields.

  Tag Numbers

        Sectors may have a Tag number associated with them.  A linedef

        that has the same tag number can be used to activate the

        sector by walking across it or pressing it like a switch.

        The tag numbers are an independant table that is used to link

        the actions of linedefs and sectors together.  The fact that the

        Tag numbers are independant means that a single tag number can

        multiple lindefs to a sector.

  Things (what order)

        Add a player 1 start as soon as you've built your first

        sector.  WAIT until your done building all the sectors

        before you add enemies and weapons.  This way you won't

        have to waste time killing them every time you go to

        test out your creation.  Decorations should also come

        before the enemies.  (This WILL save you time, but,

        if you feel the need to kill something every time you test

        your level, go ahead and satisfy your desire for carnage.)

  Vertices, Linedefs, and Sectors... suggested order to do them in.

        First add all major rooms using F9 menu.  Then use F9 menu to

        insert obstacles or different areas inside these rooms.  Connect

        the rooms by selecting two vertices from each (in clockwise order)

        and press "Ins" twice.  Now go ahead and add more walls or sectors

        using the vertices method.  Drag some walls on top of some others

        if you want to join two rooms.  Then set the textures of walls and

        ceilings and height of sectors.  Add a player 1 start thing and

        compile it and take a walk through it.  Then go back and fix things

        and add decorations.  Add enemies last so you don't have to deal

        with them every time.  Remember to add enemies based upon difficulty

        level.

  Stairs

        The maximum difference between floor heights for stairs is

        somewhere close to 24.  Typical values for the height differ

        by 16 units.  (Most of id's stairs use 16, although some of id's

        stairs go by 8.)

  General

        Good things come to those who.... WORK!

        It takes TIME to build a good wad file.  The first really cool

        wads we've seen produced with DEU took in excess of 15 hours.

        Granted, that included time to learn the latest release of DEU,

        but we expect that it will take somewhere between 620 hours

        to churn out a really good level.   Don't be discouraged.  You

        can start out with a simple level and expand on it as time

        permits.

        Theme!  Theme I tell you!  And a little continuity wouldn't hurt

        either.  We've made a couple wads without any continuity and

        found that they looked, well... amateur.  The sample levels

        in the tutorial have little continuity and are in no way

        meant to demonstrate what a good level looks like, rather,

        these were built to show how things work.

  Including your own demo in a PWAD.

        > doom devparm record E1M1 file E1M1.WAD

        > deu

            > R E1M1.WAD

            > I E1M1.LMP DEMO1

            > R DEMO1.WAD

            > G MYLEVEL.WAD

        > doom file MYLEVEL.WAD

  Special Tag Numbers

        The only special tag number we know of yet is tag number 666.

        It is used to lower a sector after all the Barons of Hell have

        been eliminated on E1M8.  We haven't tested to see if that

        works on any other ExMx levels.  Let us know!

  Death of Bosses ends level

        This is only true at the End Levels (ExM8).  When all of the

        bosses that are tougher than a baron of hell die, the level

        ends.

  Exits for Single, Coop, and Multiplayer

        It IS possible to create a level suitable for singleplayer games

        AND protect the exit in Deathmatch games so that players must

        cooperate in order to exit.  There are many ways to do this, and

        most of them are based upon when Things are available (See the When

        Appears item in Things mode).

        One simple way is to have two doors that lead to the exit.

        In multiplayer: Door "A" could be blocked by having a lamp in front of

        it.  Door "B" would require a distant switch to be pulled so that the

        player pulling the switch couldn't reach it by themselves.

        In single player (and Cooperative) mode Door "A" would not be blocked

        by any object nor require any switch to be pulled.  This is just one

        of many possible ways to make a wad playable by a single player but

        require cooperation to exit in Deathmatch mode.


Doom / WinDEU limits
 [10.2]  DEU/DOOM Limits....

        Maximum size of a wad file created with DEU 5.2:  This depends on how

        much base memory you can free up.  The more free ram, the bigger the

        WAD can be.  If you are using the GCC version of DEU, you will be able

        to create a wad as big as your total memory (standard + extended): you

        can create a huge wad file with this...

        X,Y locations of vertices:  somewhere in excess of 10,000 to

        +10,000.  It could be 32768 to + 32767.  Note however that

        DEU might get a little weird if your vertices are too far

        apart.

        Maximum number of sector tags: 255

        Maximum number of enemies/things that can be displayed at a

        time: Somewhere near 64.  We've seen that when there are too many

        some of them will disappear and reappear.  This looks really bad.

        The doom engine (v1.2) can handle floors & cielings from 32768 to

        +32768 as long as the difference in a sector is not more than 1000.

        DEU imposes a limit of 16384 as a safety feature and will check for

        the ceiling/floor difference when you run the 'check textures' test.

        The Maximum 2S linedefs that you can see from any point before DOOM

        engine limit causes HOM (Hall of Mirrors effect): Somewhere near 16.

        Maximum stair you can climb: 24 units.

        Minimum floor to ceiling distance that you can walk through:  Near 60

        units.

        Minimum wall distance you can squeeze through: 34 units.

        Number of hours playing doom before your spouse (or friend) files a

        certificate of your death and claims benefits:  Do you really want to

        find out?  Spend a little quality time with them!

That's it people.  We hope you enjoy this editor and that it adds a ton of

replay value to the game.  This, of course, until the next big release from

id software.  DOOM: Hell on Earth.   Possessed humans with chainguns, demon

reanimators, and more.  We can feel it coming on like an earthQUAKE!

Oh, and don't worry... There's tons of copies of the source code, so DEUHOE

(or whatever) probably won't take too long.  About two weeks... ;)

<big wink>