Yadex 1.7.0 (2026-07-12)

# Getting started with Yadex

| If you're new to Yadex, this is what you want to read first. |

## 1. Introduction

### Yadex in one paragraph

Yadex is a Doom level (wad) editor for Unix systems running X, including Linux. It supports Doom, Doom II, Ultimate Doom, Final Doom, Heretic and also, in a more or less limited way, Hexen and Strife. It is available under the terms of the GPL.

### What do I need ?

To compile, install and run this release of Yadex, you need

- a POSIX-compatible environment (such as Unix),
- an ISO-compliant C/C++ compiler
- GNU make (it won't work with other flavours of make),
- an HTML viewer to read the doc,
- a Doom/Doom II/Heretic iwad.
- X11R6 or X11R5.

More specifically, Yadex expects that

- the routines in `ctype.h` accept the range `CHAR_MIN` through `UCHAR_MAX`,
- the C library has the `hypot()` function,
- either the `nanosleep()` or the `usleep()` system call is supported.

#### Iwad

A shareware Doom/Heretic/Strife iwad is okay but you need a registered iwad if you want to be able to save your changes.

#### Directories

Yadex conforms to the FHS (filesystem hierarchy standard). The installation procedure will try to copy files in the following directories, creating the directories if they don't exist ;

- `/etc/yadex/1.7.0`
- `/usr/local/bin`
- `/usr/local/share/games/yadex/1.7.0`

So make sure you have the necessary rights before installing (or install in a different location).

#### Display

Yadex uses about 270 different colours. In most cases, on PseudoColor displays, there aren't that many free colour cells. So, if it detects a PseudoColor display, Yadex uses a private colormap so as to get as many free colour cells as possible. The inconvenient of this method is that, when you're in the Yadex window, all other windows are displayed with wrong colours and vice-versa.

What's more, as PseudoColor displays typically have 256 colours (at least on PC), which is less than the number of colours needed, Yadex might have to assign the same physical colour to different logical colours. If it happens, it will try to render the colours of the game accurately at the expense of the application colours.

Monochrome displays might work but they have not been tested.

Executive summary: if you can, use a TrueColor or DirectColor display and a depth of more than 8 bits per pixel (E.G. by launching X with "`startx -- -bpp 16`").

A 640x480 screen is okay though, of course, a larger display is better.

### Compiling and installing Yadex

See `README`.

Don't forget to tell Yadex where your iwads are by changing the lines "`iwad1 =`", "`iwad2 =`" etc. in `~/.yadex/yadex.cfg` or `/etc/yadex/1.7.0/yadex.cfg` (the actual location might be different if you compiled with another prefix than the default). If there is an iwad you don't have, you can just comment out the corresponding line.

## 2. Quick start

### I know nothing about Doom editing

This section is meant to be a quick introduction to using Yadex. I assume you already know the basics of Doom editing, i.e. what vertices, linedefs, sidedefs, things and sectors are and how they work together. If you don't, it would be good idea to go get a Doom editing tutorial (see the list). If at first it seems confusing, persevere. It worked for me anyway ;-).

### How do I run Yadex ?

You must have successfully compiled, installed and configured Yadex. If you haven't, see there.

For the sake of discussion, we'll assume you want to edit MAP01 of Doom II. From the shell, type :

`$` `yadex -g doom2`

(of course, you don't have to type the "`$`" !)
You should see a couple of messages and then the Yadex prompt, which looks like this :

`yadex:`

At this prompt, type :

`yadex:` `e map01`

(once again, don't type the "`yadex:`" string !)
The editor window opens.

### Moving around in the edit window

There you are. What you should see now is a window with the map of the level you wanted to edit.

Fresh Yadex window

At the top of the window, there is the menu bar. I assume you know what a menu bar is. At the bottom of the window, there is the info bar. It displays some information about your current status : the name of the level you're editing, whether it has changed since last saved, in which editing mode you are, etc.

Try to move the pointer around. Note that the info bar shows the position of the pointer in map coordinates.

If you press [`Left`], [`Right`], [`Up`], [`Down`], [`Home`], [`End`], [`Page-up`] or [`Page-down`], the map scrolls.

You can also zoom in and out by pressing [`+`] and [`-`].

### Highlighting, selecting, dragging, changing properties

As you are now in "things" mode (as you can see on the info bar), every time you pass over a thing, it is highlighted and a window pops up in the bottom left corner of the window that shows the properties of that thing.

What if you want to change the properties of a thing ? Double-click on it or highlight it and press [`Return`]. A menu pops up in the top left corner of the window. Select the property you want to change and yet another window pops up. Enter the new value of the property and that's it.

You can drag things around ; click on the thing and, without releasing the button, move the pointer to where you want to move it to and then release the button. If you want to move a group of things, select them all, and drag one of them. All selected things follow.

To select several things, you can either hold [`Ctrl`] down and click on each of them in turn or select them all at once with a selection box. To do that, click on an empty spot and, without releasing the button, move the pointer to where you want the other corner of the box to be. Then release the button ; all the things within the box are selected.

Note that when you start a selection box, everything else is unselected. If you don't want that to happen, hold [`Ctrl`] down while you draw the box. Thus you can add the contents of the new box to the selection.

### Deleting and creating

You can delete things by pressing [`Del`]. It will delete all selected things or, if there is no selection, the highlighted thing.

You can also create a new thing under the pointer by pressing [`Ins`]. If, at the moment you press [`Ins`], there is a thing highlighted, the new thing will be created with the same properties as its "model". Else, it will have the default properties as defined in the Preferences.

### Modes

So far we've only edited things. Now how do we edit other objects ? As I've said before, you're in "things" mode. If you press [`Tab`], you will switch to the next mode, that is the vertices mode. Press [`Tab`] again and you are in linedefs-and-sidedefs mode. Press [`Tab`] again and you are in sectors mode. Press [`Tab`] again and you are back in things mode. You can also use [`Shift-Tab`] to cycle backwards through the modes and [`t`], [`v`], [`l`] and [`s`] to go directly to a particular mode.

The other modes work like the things mode except that you operate on different types of objects.

### Zooming and the grid

Use [`g`] and [`G`] to change the grid step.
Use [`y`] if you want to be able to place objects "off" the grid.

### Creating complex objects

Click on the "Objects" item on the menu bar or press [`F9`] and look at the menu that pops up.
You can also create a sector from a path of linedefs by selecting those linedefs and pressing [`Ins`].
You can create a linedef between two vertices by selecting those vertices and pressing [`Ins`].

### Advanced functions

Click on the "Misc" item on the menu bar or press [`F8`] in different modes and look at the menu that pops up.

### Checks

Click on the "Checks" item on the menu bar or press [`F10`] and look at the menu that pops up.

### Saving and exiting

If you still haven't, please make some modifications to the level. For example change some textures and light levels and add, say, a dozen of cyberdemons in the courtyard.

I want you to save the modified level to a pwad named `mywad.wad` so that you can test it with Doom. To do that, press [`F2`]. Don't worry, it will not overwrite your iwad. Individual levels are always saved to a pwad. You are prompted for a file name. Enter `mywad.wad`.

Before when go on, here a few things worth mentioning :

- If you press [`Esc`], you quit without saving. If you have unsaved changes, you are asked to confirm.
  If you press [`q`], you save and quit.
  If you press [`F2`], you save.
  If you press [`F3`], like [`F2`] but you can save under a different level name (E.G. MAP02).

- Whenever you are queried for a file name, remember that the `.wad` extension is not automatically appended. In addition, if you used to be a DOS/Windows user, remember that Unix treats file names in a case-sensitive fashion so you'd better think twice before using names like FOO.WAD.

- When a `.wad` file is changed, a backup is made in the same directory and with the same name but with the extension `.bak`.

- I said above that iwads are not overwritten. The same is not true of pwads. If you edit a level that comes from a pwad, it will be saved to the same pwad file, unless you specify a different file name.

- GOTCHA: when you save to a pwad, everything that used to be in that pwad is lost ! For example, if you load a pwad that contains MAP01 and MAP02, edit MAP01 and save MAP01 to the same pwad file, the level MAP02 it used to contain is lost ! It's unfortunate but not very easy to fix.

Now press [`Esc`]. The editing window closes and you are returned to the Yadex prompt. From there, use the "`e`" or "`c`" commands to edit another level or use the "`q`" command to really quit Yadex.

### Testing your level

GOTCHA: Before you test your level, you MUST run it through a nodes builder. If you don't, you'll get strange results or you'll crash the game.

There are several nodes builders around. One of the best is BSP, which you can download from `http://doombsp.sourceforge.net/`. To build the nodes on your level with BSP and then test it with Doom, type something along the lines of :

    $ bsp -o final.wad mywad.wad
    $ doom -file final.wad

### Fixing your level

You've tested your level and you've found that some things need to be fixed. What do you do ? Well, go back to How do I run Yadex except that, this time, you need to tell Yadex to load your pwad. You do that by running Yadex with the name of your pwad as argument (you can ommit the `.wad` extension). E.G. :

`$ yadex -g doom2 mywad`

That's it ! You've been through an entire edit-build-test-edit cycle. Doubtlessly the first of thousands :-).

AYM 2003-03-31