Doom Legacy 1.46 Editing Guide

This is a documentation of the new editing features in Legacy. These features should be in Doom Legacy version 1.43 and up.

Doom Legacy supports most Boom editing features discussed in the Boom Reference.

These editing documents are also fairly lightweight and straight forward, if you would like a more comprehensive version, please visit the Doom Legacy Wiki.

Linedef Types

0 – 141Original Doom and Doom2 linedef types
142 – 269Boom extensions
272 – 306Legacy extensions

Legacy Linedef extensions

LINEDEF type Effect
FraggleScript triggers
See FS getting started and FS reference manual.
272 Start FS script (tagnumber), WR
273 Start FS script (tagnumber), WR, 1-sided
274 Start FS script (tagnumber), W1
275 Start FS script (tagnumber), W1, 1-sided
276 Start FS script (tagnumber), SR
277 Start FS script (tagnumber), S1
278 Start FS script (tagnumber), GR
279 Start FS script (tagnumber), G1
Translucency maps
284 – 288 Software translucency
These linedefs each apply a different translucency map to the middle texture. The corresponding translucency maps are stored in legacy.wad.

284 — TRANSMED: Brightens everything behind the line. Turns things kinda green though.
285 — TRANSMOR: Less brightness with a lot less green.
286 — TRANSHI: Darkens a little with no green tint.
287 — TRANSFIR: Brightens but with no green tint.
288 — TRANSFX1: Selective translucency. Only certain colors are translucent.
Colormaps and water
280 Water — Boom style

Creates swimmable water in all tagged sectors, with colormap transfer like Boom 242.
Similar to the Boom 242 deep water type but swimmable (using the Legacy swimming code). It operates more like water than 242 does, but does not have ripples like types 301 and 304. Unlike type 242, this type will not make the actual floor or ceiling into invisible barriers.
The water is only shown if it is above the target sector's floor; otherwise, the regular floor is rendered. When water is rendered, the properties for the top of the water "plane" and the bottom, are both taken from the control sector's floor.

The lightlevel of the water is controlled by the target sector's lightlevel unless the target sector has been also tagged to a "Transfer floor properties" linedef, in which case, the water will have the transferred lightlevel.
It also uses the sidedef1 upper, lower, and middle textures as colormaps in the targeted sector.

* It will also create a low fake ceiling if the control ceiling is lower than the target ceiling (this is usually not desired).

282 Generate colormap

This type sets the colormap of all tagged sectors like described below, without changing the floor/ceiling or light values. This is nice for putting colored lighting in many different sectors of different floor/ceiling heights:

Texture Value Effect
upper #rrggbba 6 hex chars giving the color value in RGB format of the colormap mask, 1 alphanumeric char (a-z) denoting the amount of the colormap mask.
middle #abbcc a = boolean value (0 or 1) denoting if this particular colormap should be treated like fog (i.e. equal application of colormap to all walls, etc.) bb = numerical value (0-32) of the colormap at which the fade begins cc = numerical value (1-33) of the colormap at which the destination color will be reached. (not yet supported in hardware mode)
lower #rrggbb 6 hex chars denoting the color the colormap will fade to. (not yet supported in hardware mode)

Hex color values can be found via paint program or web editor.
There are tons of colors to choose from but here are some to get you started: #FF0000 #009900 #0099FF #FFFF00 #6600CC #FF6600

283 Fog sheet

Displays a 128 high transparent dark fog texture as the middle texture. This can be used to make a better fog effect by patching up the "holes" in fog sectors. Because you often will not want this effect on both sides of the line, this linedef will only affect sides with a middle texture.

3D floors
281 Solid 3D floor with shadow

Creates a solid 3D floor in all tagged sectors.
It creates a floor, as a solid slab with thickness, that can be walked on and under.

289 Solid 3D floor without shadow

Creates a solid 3D floor in all tagged sectors, same as type 281, but without changing the lighting under the floor slab. The floor does not cast a shadow, so the light below the slab is the same as above. It puts a floor, as a solid slab with thickness, that can be walked on and under, inside all tagged sectors.

300 Solid translucent 3D floor

Creates a solid translucent 3D floor in all tagged sectors, same as type 281, but translucent, and without changing the lighting under the floor slab.
It creates a floor, as a solid slab with thickness, that can be walked on and under.

Sidedef1 upper texture: #nnn

nnn = 3 digit number (0..255) that encodes for the translucent effect alpha. If it is empty then alpha is 128.

301 Translucent 3D water

Creates translucent 3D water in all tagged sectors.
Set the control sector ceiling to the water top level, and the floor to the floor level (or below).

Since 1.44 Alpha 4 it allows selectable fog effects with alpha. Before that only alpha was selectable and it was drawn clear.

Sidedef1 upper texture: #nnnF

nnn = 3 digit number (0..255) that encodes for the translucent effect alpha. If it is empty then alpha is 127.

F = fog effect selection, as in linedef 302. The default is clear ('A').

304 Opaque water

Creates a 3D fluid, that is not translucent on the surface.

The control sector is sidedef1 of the linedef.

Since 1.44 Alpha 4 it allows selectable fog effects with alpha, and rendering of low visibility transluceny. Before that it did not have translucent effect, did not have alpha, and it was drawn clear, with the upper texture as normal. The default is the old transparent effect.

Sidedef1 upper texture: #nnnF

nnn = 3 digit number (0..255) that encodes for the translucent effect alpha inside the opaque water. If it is empty then alpha is 190. It does not affect the surfaces. An low visibility alpha of 127..255 is recommended for opaque water.

F = fog effect selection, as in linedef 302. The default is clear ('A').

302 3D fog

Creates 3D fog (using control sector's colormap) in all tagged sectors.

The middle texture is used for the fog effect. It is sampled for color, texture, and transparent pattern, generating a fog texture by blending and blurring. The fog effect generated is slightly different for each drawing mode, with the RGBA 32 bit drawing being the reference and the others approximating that as close as possible. Because the fog modes will be improved in the future, it is not recommended to rely too heavily on the exact rendering in the current version.

Sidedef1 upper texture: #nnnF

nnn = 3 digit number (0..255) that encodes for the translucent effect alpha. If it is empty then alpha is 110.

F = fog effect selection. The default is fogdust ('F').

Letter Effect
A "Clear": No fog. The old water default. This is useful where the swimmable effect is used to simulate low gravity, and no fog is wanted.
B "Cast": Paint all surfaces with textures. Not implemented yet.
C "Colormap": Uses only the colormap fog (which only colors all sectors). This is useful where the swimmable effect is used to simulate low gravity, and only the colormap fog is wanted.
D "Inside": Only render inside side and plane views. The old fog effect. Has the same light effect as 303, but also tints anything seen through any of the edges, top, or bottom, like a translucent. Because the fog effect is not present within the fog itself, it helps to add some fog sheet linedefs (283).
E "Fog Lite": Renders with outside side and plane views, with low alpha. This will be a light fog effect, without distance effects.
F "Fog Dust": The normal fog effect, with normal alpha, without distance effects. The user can add fog sheets in the wad to augment it. This is the fog default.
G "Fog Sheet": A fog with distance effects. The current implementation use fog sheets that are automatically added where fog sectors are joined.
H "Fog Fluid": A fog optimized for use within fluids. Does not have distance effects.
303 Ceiling light

Creates a 3D light below the control sector's ceiling height, in all tagged sectors.
Does the 3D light and colormap of a 3D floor, without the floor.

305 Double light effect

Creates a 3D light similar to 303, except that the light is only affects the area between the control sector ceiling height, and the control sector floor height. Does the 3D light and colormap of a 3D floor, without the floor. The control sector light and colormap are used with-in the control sector floor and ceiling heights.

306 Invisible floor

Creates a 3D invisible floor, or slab in each tagged sector. The floor can be walked on, and will stop weapons, but does not affect light nor colormaps.

Instant z movement
290 Instant lower floor
291 Instant raise ceiling

New Linedef Flags

Linedef Flag Effect

512 = 0x200

Passthru: This flag when set allows a push or switch linedef trigger to pass the push action thru it to ones within range behind it. - Boom

1024 = 0x400

Alltrigger: This flag, when set, will allow all things to activate a W* line, with the exception of flying blood. :) This includes all generalized types that are W*.

Thing Types

Legacy supports up to 64 deathmatch starts. For compatibility with the existing maps, Legacy will use the player starts if all the deathmatch starts in a map are occupied. If all the player starts are occupied (including extended ones), then a dm start chosen randomly will be used.. and players might get stuck together, but this will happen normally only at the beginning of games with maps with few dm starts.

The Doom map format refers to different types of THINGs (a.k.a. mapthings, map objects, mobjs) by unsigned 16-bit codes, known as DoomEd numbers. Doom and Heretic use different numberings, with the number ranges overlapping in some places. The situation has been made even more complicated by the different Doom source ports introducing their own, often conflicting, special THING types.

Legacy tries to honor the most common "new" thing types, especially those introduced by Boom and SMMU.

THING typedescriptionorigin
4001-4028 Playerstarts for players 5-32.JDS group
5001, 5002 Point push and pull effectsBoom
5003 Camera locationSMMU
5004 Path nodeSMMU

Palettes, Colormaps and Textures

Doom Legacy consists of several new graphic and patch resources as well as supporting different variations of modifying them, view the following:

Doom Color Palette

Like many other older games, Doom used originally 256 color paletted graphics. The graphics stored in a WAD do not have real color information but palette indices. The engine maps these indices to real RGB colors using the palettes defined by the PLAYPAL lump in the IWAD.

So say you want to make a few new textures in your paint program. You can either create paletted images using the Doom palette, or use 24/32 bit truecolor images and quantize them to the Doom palette when they are done. Heretic palette is different from Doom's, but used exactly in the same way. Modern lump editors such as XWE will convert your image to the proper color palette automatically, but the results will generally be better if you use the correct palette to begin with.

Legacy 1.44 does not support hi-res or hicolor textures or sprites. However, Legacy 2.0 does! Please check the Doom Legacy website for more info on Legacy 2.0.


The Doom software renderer uses many different kinds of color mapping tables to simulate lighting and color blending effects. A colormap is a 256-byte array used to remap the colors inside a palette:

new_index = colormap[old_index]

They are used to create colored area effects, such as sectors with colored lighting, or a colored fog for the whole level.

Colormaps can be created with a utility called Inkworks. Inkworks is a DOS based program which allows you to manipulate the color palette and save it in a WAD which contains both PLAYPAL and COLORMAP lumps to merge or insert into your WAD. This old way of creating colormaps is somewhat deprecated due to the fact that they only would show up in software mode. Yet, still an option.

For both hardware and software modes, the easiest way to simulate colormaps is just by using Legacy's Generate colormap linetype and setting a hexadecimal RGB color value in its texture field. When this is done, an actual colormap lump is not needed.


The Doom software renderer uses a set of 34 different colormaps (one for each light level plus 2 extra), called a lightmap, to simulate different visibility levels. The default lightmap is stored in the confusingly named COLORMAP lump. One can also simulate colored lighting and fog using lightmaps.

[ADVANCED TOPIC] Translucency maps

A translucency map is a 256-by-256 byte array used for selective software translucency, where a background color is seen through a translucent foreground:

new_index = transmap[fg_index][bg_index]

You can visualize it as a set of 256 colormaps, one for each foreground color. Boom (and hence Legacy) uses the lump TRANSMAP as the default translucency map.

Section marker overview

Certain lump types in an IWAD or PWAD should be in continous blocks surrounded by the appropriate section markers. Here are the markers used by Doom Legacy:

MarkersSection contents
C_START, C_END Software colormaps
P_START, P_END Patch lumps (wall and sky textures)
PP_START, PP_END alternative
F_START, F_END Flat lumps (floor and ceiling textures)
FF_START, FF_END alternative
S_START, S_END Sprite lumps (mapthings)
SS_START, SS_END alternative

Not all lump types need section markers, for example graphics, sounds and music do not. More about section markers and the lumps that go between them will be found below, but we also encourage you to view your IWAD contents for more info.

Wall textures

P_START and P_END markers

Legacy honors the section markers P_START and P_END when introduced as new Patch textures. As well as PP, P1, P2, and P3, just like Doom.

(The quickest way is automatically. The way to do this is by selecting the Patches Tab, and then loading new texture images. Entry>Load.) From that point Xwe should automatically add the P_START and P_END markers, as well as the PNAMES and TEXTURE1 lumps) required for the new patch textures. The engine then takes the texture name, number, and scale, and puts them where they are assigned to by the map, in game.

It's a general rule of mine to create NEW patch textures rather than replacing an exsiting one, or creating NEW patch textures with a New Name rather than replacing an existing one.

Standard wall texture sizes: 64x128, 128x128, 256x128.
However as of 1.41x, hardware video mode in Doom Legacy supports x2 large flats and wall textures

Sky textures

The original sky texture size in Doom is 256x128, however, Legacy also supports sky textures the size of 256x240. This is because of freelook: you are able to look higher, thus seeing a part of the sky you couldn't see in the original Doom. A taller sky texture was needed.

Using a taller graphic is better than scaling up the original skies, it looks better. However for compatibility, Legacy scales up the SKY textures if it finds that they are the old small size 256x128.

The bottom 40 lines are under the horizon and not normally seen. The lines 100 to 199 are the ones you see while looking straight ahead. The top lines 0-99 are the lines of sky you see when looking up.

There is a small utility called LUMPY provided in this archive to create patches for the sky. Other editing utilities can be used to add the new sky patch to your WAD, XWE for example, see Editing Links.

To convert the sky with LUMPY: LUMPY image.pcx -width 256 -height 240

To add the sky to your WAD with XWE:
Open XWE, select the Patches Tab at the bottom. Select: Entry>Load. Load your image.

Flat textures

Flats in a PWAD are supported by the 'addfile' console command (loading a PWAD file in the game world). This is useful for testing purposes.

F_ and FF_ markers

Flats in a PWAD already worked with the original Doom, you had to put a 'F_END' after the last flat. However, it wasted memory because the engine took all resources from the F_START of the original game WAD, up to the F_END in your PWAD, as flats.

Legacy honors the section markers F_START and F_END. FF_START and FF_END are also honored. Flats are expected to be within these markers and these flat areas will be searched first. Separate flat sections within PWAD files are supported, and they add flats to those found in the IWAD. If a flat name is not found within the flat markers then Legacy will search the entire IWAD and PWAD for the flat.

Most ports and vanilla Doom engines expect F_START and F_END, so use them. It makes your WAD compatible with other ports, and speeds up the name search in Legacy.

Unlike patch textures, Flats don't need a pname or texture lump. Just slap them in your PWAD between the section markers F_START and F_END and your done.

The standard flat (floor / ceiling) texture size in Doom is 64x64 pixels. However as of 1.41x, hardware video mode in Doom Legacy supports x2 large flats and wall textures. More about x2 flats and wall textures can be found on the Doom Legacy Wiki.

Legacy texture flat loading supports any number of new flats (using new names), and it only animates (loads) those animated flats that are used in a level.

Animated textures

Swantbl can be used to create new animations. Now you're probably wondering, what the heck is Swantbl?

Swantbl is a utility that creates SWITCHES and ANIMATED lumps to put in your WAD, used by Boom and of course Doom Legacy. First you will need 2-4 image framesets for your animation - depending wheater its a flat, a wall, or a switch. They will need to be (named) and in your WAD. And then, by editing the DEFSWANI.dat you add new image frame (names) from Last to First. Then compile it with Swantbl, which then outputs the 2 animation lumps to put in your WAD. More info can be found on the Wiki about animated textures. And of course the DEFSWANI.dat.

pic_t graphics

For now, certain Legacy resources need to be in a format called pic_t. You can also use LUMPY or Deepsea to convert other image formats to pic_t. This is a DEPRECATED feature, and is replaced in Legacy 2.0 by PNG.

Sprites and Skins


S_START and S_END markers

SPRITES in a PWAD _ARE_ supported by the 'addfile' console command (loading a PWAD file in the game world). This is useful for testing purposes.

It is not needed anymore to append the missing sprites in a PWAD (using your faithful lump editor). You need only S_END (or SS_END) added after the last sprite in your PWAD. S_START (or SS_START) is not obligatory, but is recommended to clearly separate sprites from skin sprites, and other sections that might redefine the same sprite, but for other uses. It's good practice to place both S_START and S_END in a PWAD when adding new sprite graphics.

All sprite resources found in a PWAD will replace those loaded before, just like with any other resources. Thus, sprites in a PWAD replace the original sprites of Doom, Doom2 etc. since the original game IWAD is always the first one loaded.

If you put S_END, but not S_START, sprites will be searched from the beginning of the PWAD, up to the S_END. We could get rid of S_END, but the loading of sprites would be less efficient.

Another reason for section markers (S_START, S_END): sprite resources are recognized by their first 4 letters. For example player sprites start with PLAY. Suppose you replace the PLAYPAL resource in a PWAD, and use sprites in it, if you don't put the S_START, and PLAYPAL is BEFORE the sprites, it will be taken as a sprite since it starts with PLAY.
Solution: always use S_START/S_END, or put the PLAYPAL resource after S_END.

You can replace only some frames of a sprite in a PWAD, for example replacing PUNGA0, but not PUNGB0. this DOES NOT work using sprite renaming with DeHackEd. So I really encourage you to use sprites in a PWAD directly instead of DeHackEd sprite renaming. This is useful for the rocket for example, when you want to replace only the missile or only the explosion.

Creating Skins


In Doom Legacy, each sprite skin in a PWAD is defined by a lump named S_SKIN. It contains an ASCII text file which describes the name and properties of the skin.

If you put more than one skin into a WAD file, there are effectively multiple resources of the same name S_SKIN. If this is a problem you can add any characters after the S_SKIN letters, so that your WAD editor doesn't complain. Example: S_SKIN1, S_SKIN2, ... Legacy will search only for the first 6 letters.

Skin sprites

A skin is basically a sprite replacement for the player avatar. ALL the frames of the player sprite must be replaced; this includes the normal run, attack and hurt sequences, as well as the normal death, and the explode death sequences.

Skin face

Though the status bar face is viewable only by the player who uses the skin, it may be replaced in order to be consistent with the player character appearance. As soon as we ran some tests with a Leprechaun skin, and saw the marine's head in the status bar... we added support for replacing the status bar face. Like the sprites, _ALL_ the face graphics need to be replaced, if some are not defined, the game will quit.

Skin sounds

To make it more fun, a skin can have a set of up to 10 sounds replaced, these are called the 'skin sounds'. Skin sounds are replacements of a set of the original Doom sounds, which are given out only by the skin that defines them. All the sounds need not be replaced.

S_SKIN resource format

// comments start with '//' name = xxxxxxx <- The name of your skin, max 16 chars, NO SPACES! sprite = XXXX <- Identify the sprites to use for this skin, 4 characters, optional. face = XXX <- Identify the status bar face graphics to use for this skin. MUST be 3 characters. dsORIGNL = dsNEWXXX <- Replace one of the 10 customisable sounds with a new sound.


An example is better than 1000 words, so here we go. Here's a sample of a text file that you could have in the S_SKIN resource:

// Terminator skin by xxx mail me name = terminator sprite = TERM face = TER dsouch = dstmouch dsplpain = dstmpain dsslop = dstmexpl

Let's study each line one by one:

// Terminator skin by xxx mail me

This is just a comment line. Comments start with '//'. Use comments to enter author information. The comments are not displayed anywhere into the game, but they may be useful if someone hacks your WAD, he/she'll know where it comes from and who did it.

name = terminator

This tells that the skin name is "terminator". The skin name is displayed in the multiplayer->setup menu. It is used by the "skin" command, in the console. You would type "skin terminator" at the console to change the skin manually, of course it's easier to use the multiplayer menu. The skin name must be UNIQUE : if there are two skins in a WAD with the same name, however different the graphics maybe, only the first skin will be used.

The skin name is also displayed in the teamplay rankings, when using "teamskins". Since each team is identified by a skin in teamskin mode, the rankings would show like this:


As you see, the name of the skin is used as the name of the team. If you don't specify the name of the skin, it receives a name like SKIN 1, SKIN 2, etc.. not fun.

The name can't have spaces in it... for example a name like "blues brothers" will make Legacy quit with a message like "unknown 'brothers' keyword". We should fix that later.

sprite = TERM

Tells the name of the sprite to use for the skin. Sprites in Doom use only 4 letters, the original player graphics sprite is PLAY. The line above tells Legacy to look for TERMA1 instead of PLAYA1, TERMA2A8 instead of PLAYA2A8 etc.

It is usually easiest to put all the sprites right after the S_SKIN resource. Example:


If you put the sprites just after S_SKIN, the sprite name doesn't matter, Legacy looks for the first sprite name, and continues to collect all the frames with the same sprite name, until the name has changed, or the end of the wadfile. You will want to rename the skin sprites only if your WAD editor requests that all resources have a _unique_ name.

Since you can use any name for the sprites, even without using the "sprite = XXXX" statement, you will probably need this only if you really can't get the sprites ordered just after the S_SKIN resource.

Note: _ALL_ the frames of the player sprites must be replaced.

face = TER

All the status bar face graphics resources in Doom WAD have a name that starts with STF: STFST01, STFGOD0, STFDEAD, etc. This line simply gives the three characters to use in place of STF. So in this example Legacy will look for TERGOD0 instead of STFGOD0, TERST01 instead of STFST01, etc.

The STFB1, STFB2 and STFB3 resources of the original Doom are not used anymore. Doom Legacy only uses STFB0, and remaps the green color to the color of the player, as like it does for sprites.

Contrary to the sprites renaming, you MUST use this line in order to change the status bar face graphics. You must replace _ALL_ of the status bar face graphics, that is, provide a replacement for all the resources that start with STF.

dsouch = dstmouch dsplpain = dstmpain dsslop = dstmexpl

These lines tell Legacy to use new sounds for this skin in particular, in place of the game's original sounds.

Up to 10 sounds related to the player actions can be replaced. The new sound names MUST start with letters DS. Any of the 10 sounds can be replaced, or all. The sounds that are not replaced will sound just like the original.

Original sound namePurpose
dsplpainpain sound
dspldethdeath sound
dspdiehiextreme death sound
dsslopgibbing sound
dsoofhitting the ground / missing a key to a locked door
dsouchhitting head on ceiling
dsnowayfailed using something
dsjumpjumping sound
dspunchpunch attack sound
dsradiomessage sound

Note: the replacement sound doesn't have to be a new sound, you can use any sound from the game. For example, if you create an imp skin, you could replace the player sounds with the imp sounds.

Skins and sprites in the same PWAD

If you have a WAD with skins _AND_ other sprite replacements, make sure you use S_START, S_END sprite section markers so that the skin sprites are not replacing the default player sprites, in case you use 'PLAY' for the skin sprites. If the PLAYxxxx skin sprites are _outside_ of the sprite section markers, they will not be mistaken as the default player sprites.

Same resource name on different PWADs

To make it clear: Legacy will add skins _WAD PER WAD_. Which means it doesn't matter at all if there are resources with the same name in different PWADs. In fact, Legacy doesn't even bother if you put several markers with the same name in a PWAD (multiple S_SKINs for example). We added support for S_SKINxx where xx can be any character, just because some WAD utilities don't like multiple resources of the same name.

You could for example use the same sprite name for several skins in a single PWAD, since they are delimited by skin markers (S_SKIN).

Voodoo dolls

Now in version 1.44 and up.

Create Voodoo Dolls for extra player1 start positions. This is necessary for many WADs, which use the voodoo dolls for timers and action activators.

Simply place an (extra player 1 start) in your map.

The trick is using it in an area where the player or item can be pushed, pulled or teleported into effected areas.

For example, the appearance of the player will alert monsters, which is useful for teleporting monsters in front of your real player, without the old way (creating a small tunnel) or without any scripts. So, if you put the voodoo doll in a small room with a monster on the other side of a door, when the door opens, the monster walks forward, which then could be teleported in front of your (real) player start location.

This is only 1 example of the many different things that could be done with Voodoo dolls. Another example would be receiving health by means of conveyor or scrolling floor.

Even though similar effects can be done using Fraggle Script and spawning items. The difference is, Voodoo dolls don't require a script and can be implemented via map creation. This makes it easier when you already plan on doing loads of work to your map.

legacy.wad contents

legacy.wad is the main data file in the Doom Legacy distribution. It contains several resources used by the engine, any of which can be replaced using PWADs.

All the graphics in legacy.wad are in patch format, unless stated otherwise.

Text lumps
VERSION legacy.wad version string, must match the engine version
THINGS.H FraggleScript header file containing THING names and flags.
Add include("things.h"); in your script heading to use it.
See also FS things.h on the Wiki.
ENDOOM End text, in a strange semi-binary format.
Lightmaps and translucency maps
WATERMAP Boom bluish underwater lightmap.
TRANSMED TRANSMOR TRANSHI TRANSFIR TRANSFX1 Maps for default software translucency.
DSOUCHPlayer hits the ground or a wall.
DSJUMPPlayer jumps.
DSFLOUSHWalking through water.
DSGLOOPLanding or jumping in water.
DSSPLASHSplash, or getting out of water.
BLUD[ab]0 Random projectile blood
SMOK[a-e]0 Smoke
SPLA[a-c]0 Water splash?
TNT1A0 Invisible sprite for invisible mapthings.
Other graphics
CREDIT Credits page
CROSHAI[1-3] HUD crosshairs
RANKINGS Deathmatch rankings graphic (while in a net-game).
BRDR_MM BRDR_MT window border patches?
A_DMG[1-3] Wall blood splat patches
WATER[0-7] "Old water" flats. Legacy uses 8 animated water flat textures, instead of the original 4.
RSKY[1-3] Replacement sky textures, 256x240 pixels (not 256x128 like the original ones).
Menu graphics
M_SETUPMmulti-player setup
M_SETUPAplayer1 multi-player setup
M_SETUPBplayer2 multi-player setup
M_2PLAYRsplit-screen multi-player setup
M_STSERVstart-server multi-player setup
M_CONNECconnect-server multi-player setup
Additional pic_t graphics
CORONA Corona luminosity map
CONSBACK Console background picture, 320x200, when 'con_backpic' is true (the console variable) also used as the loading picture MUST BE 200 lines high, can be any width (default is 320)
CBLEFT Console left border, used with translucent console background MUST BE 200 lines high, any width (default is 8)
CBRIGHT Console right border, used with translucent console background MUST BE 200 lines high, any width (default is 8)
Status bar overlay icons, pic_t
SBOHEALThealth (default shows a red cross)
SBOFRAGSfrags (default shows a skull)
SBOARMORarmor (default shows a green armor)
SBOAMMO1pistol ammo
SBOAMMO2shotgun ammo
SBOAMMO3chaingun ammo
SBOAMMO4rocket ammo
SBOAMMO5plasma ammo
SBOAMMO8super shotgun ammo

Common older WAD utilities are WinTex version 4.3, by Olivier Montanuy and NWT (New Wad Tools) version 1.3, by Denis Miller. Both programs will allow you to insert new raw data resources into WADs.

Newer Doom lump editors such as XWE and SlumpED will also work for almost all lump editing variations covered in this document.

Windows map editing utilities

Windows lump editing utilities

Linux/Unix map and lump editing utilities

MacOS map editing utilities

Node builders

Standard references

These documents are the current standard references to the inner workings of Doom, Boom, Heretic and Hexen. Although many of the limitations of the original games have been lifted and new features have been added, they are still very useful to a Legacy map editor.

If you have questions regarding the WAD tools in particular, please consult the Doom editing newsgroups, or ask questions on the Doom Legacy forum (go to and look for the forum link.)

And above all, please check the Doom Legacy Wiki with any other questions regarding Doom Legacy editing!

Have fun!