How to run multiple diablo 2

Diablo 2 Modding Guide - Introduction to Ds1Edit

So, I've promised for a long time and postponed it again and again, but now it's the same - this is where the crash course comes to
currently probably the best level editor for Diablo2 or LoD.
A big thank you goes to, of course Paul Siramywho programmed this great tool. Before rumors or
Assumptions arise, I had nothing to do with it, that is solely his merit and also the preparatory work
of Iselveo and Clannad, without whom Paul would have had a lot more work.
In the interests of the German D2 modding community, a big thank you to them!

So, let's get started, have fun reading it!

As promised, here is an introduction to level editing with the nice tool from Paul Siramy. There
apparently some of you have problems dealing with it and some functions are not entirely conclusive, I'll be here
explain the essentials so that in the end you are able to:

  • edit the included levels
  • edit any other levels from D2 / LoD
  • To use objects and tiles of certain maps in (almost) any arbitrary way

As a prerequisite it is necessary that you at least know how to extract files from the MPQs (e.g. with MPQView),
how to change TXT files (e.g. with D2Excel) and how to insert them back into the MPQ files (e.g. with MPQ2K). That's enough
basically completely off for most things. If you don't understand anything about this yet, you should read the beginner's guide in the
Mod section of the D2de main page, in which all these things are explained.

We'll start by downloading the tool first

There are two versions to choose from, one for Windows and one for MS-DOS (which I will not go into here, but which are exactly the same
works like the Windows version).
I recommend the Windows version, with which I actually had no problems. It is important that in addition to
Windows variant also the one listed downloaded. It contains a dll file that is the same
Directory belongs where the editor (winds1_edit.exe) is stored. Without this dll the editor will not run unless
you happen to have them already in the Windows system directory.

The tool is ready to start as soon as you have extracted it. But before you start, wild any .bat or .exe files
To start and wonder why nothing happens, we first have to make some settings, because the editor needs it
Information from the txt files so that he can display the maps correctly.
With among the extracted files there is a Ds1edit.ini, open them up (with Wordpad to the pencil).
Right at the beginning you will find the following lines:

d2data =
d2exp =
Patch_d2 =
mod_dir =

These tell the editor where to get certain information. mod_dir is an optional directory that its not
absolutely necessary, but that makes certain things easier. Simply create a new folder, preferably in the directory of the
Editors and contribute in the lines above mod_dir the appropriate path (e.g. C: / Diablo2 / Mods / Editor / auxiliary folder).
In this directory you can, for example, save mpq files that have been changed for the editor, I will explain something about this later. If you
If you don't want an additional directory, simply leave the entry blank.
In the same way you carry the paths to d2data.mpq, d2exp.mpq and to Patch_d2.mpq one, these files are located
in the main Diablo2 directory. With Patch_d2, be careful that you specify the original file and not that of a mod that has
otherwise could lead to problems. The Mod_Dir directory is there for exactly this purpose.
When the editor is started, it first looks at the mod_dir and uses the files there (e.g. from the
modded Patch_d2). What he cannot find there, he looks for next in the (original) Patch_d2, then d2exp and finally in
the d2data. As you can see, in this way it always uses the latest version of the required files, including those modded by you, if necessary.
Further down in the Ds1edit.ini you will find further setting options for the editor, which you can change if necessary if certain settings (brightness, scroll speed, etc.) are not right for you when working with the tool. Here we are now finished, save the .ini and close it.

Now let's see how the editor is started. To do this, let's take a look at the directory where you put it.
You will see the following file types there:

.ds1 - the actual level files. It contains all information about the appearance of the areas and their special features
stored, e.g. where walls are, what the floor looks like or where special things such as light sources, usable objects or
Waypoints. However, things like which monsters appear there are not stored in it (apart from a few
Exceptions), where random objects (treasure chests, barrels, jugs etc.) are and a few other things.
There are basically two types of levels. On the one hand, there are levels that always look the same - that's for the
For example the areas of the nudes (Andariel's Hall, Chamber of the World Stone) or the cities (Lut Gholein, Harrogath). You insist
always from a single .ds1 file.
On the other hand, there are levels that are generated anew with each new game. That's about most of the above-ground areas, the best
An example is the jungle in the third act. These areas are generated in such a way that the game can be drawn from a pool of many .ds1
randomly selects which ones and places them next to each other like a puzzle so that in the end a large area emerges from it.
Example: the wilderness in the first act. There are around 130 different .ds1 files to choose from from those for each area
(Blood Bog, Cold Level, etc.) a certain number is selected and the finished level is built from this. The individual areas in
first act are actually composed of exactly 100 .ds1 each. Some of these are only used in certain areas
used (such as the circle of monoliths), others, however, also more than once, for example the borders of the

.bat - for each .ds1 there is an associated .bat in the folder. The editor is started with these and opens the
matching .ds1. Right click on a .bat and choose "Edit". In the following you can see which commands the .bat executes
(the example is for the tristram.bat).

@echo off
win_ds1edit debug_tristram.txt

You should always write down the first line (just switch off that all processed commands are displayed), otherwise
but it is unimportant. This is followed by the instruction with the program "Win_ds1edit" the file "Tri_town.ds1" to
to open. 11 and 300 are important parameterI'll get to them later (they depend on which card you open
want). Finally there will be another Debug file with the name "debug_tristram.txt" createdin which you may
can read errors that occur.

Now you can start Tristram.bat for a test and look at Tristram in the level editor.

A small command summary:

+ = enlarges the view
- = reduces the view
Arrow keys & mouse = move the screen section
Left click = select the targeted tile
Ctrl + left click = select multiple tiles
Ctrl + C = copy selected objects
Ctrl + X = delete selected (visible) objects
Ctrl + U = undo last action
Ctrl + S = save the current map under _00x.ds1
Tab = switching through the editing modes: 1. Walls & floors, 2. Objects, 3. NPC paths (not yet functional)
Space = switching through the "Walkable" info
F1-F4 = Show / hide the floor layer
F5-F8 = Show / hide the various wall layers
Insert (in object mode) = insert a new object
Right click = edit the selected object or tile
Esc = exit editor (attention, no further query whether you want to save!)

For fun, just try to push a fence or a few stones back and forth in Tristram, to delete them
to switch through different modes etc.

You also want to open other cards than just the ones supplied? Just be patient, that'll come later.

Now we don't just want to copy and delete, we also want to completely rebuild the levels. How do we do that? Well before is
a little more theory required.

As you may have noticed while scrolling, the levels are made up of "boxes", too
Tiles called together. For example, when scrolling, the cursor always moves one
Tile further.

On this tile you can now (depending on the level) up to 4 different floors - and
Wall graphics can be stored, i.e. there are up to 4 wall and floor layers. Additionally
"Objects" can still be placed on the tile, a little later. Why do we need up now
to 4 wall and floor layers? Quite simply so that they can overlap. The best example is
a house or a hut. The wall graphic on which the
same, but in the second layer slot the corresponding roof graphic and because that is too bad for us, there is also one in front of the house
standing tree in the third wall slot.

A good example is Harrogath, open it with the editor and switch the individual wall panels one after the other with F5-F8.
Layer on and off, then you can see that individual buildings are often made up of many overlapping
Assemble graphics.
The floor layers work in exactly the same way. Nihlathak's podium in the Halls of Torment is one of those
"Double" floor, where the platform (a floor tile) is placed over the normal (brown-muddy) floor (also a
Floor tile).

Check it out in the editor. Right-clicking on a tile opens a selection menu in which you can
one tile for the floor (or several stacked one on top of the other, if the switch buttons Floor1, Floor2 / Wall1,
Wall2 etc. are available).

Just try to delete a house in Tristram (switch off the floor with F1, select house and then Ctrl + X) and it
then rebuild tile by tile.

Sometimes you will find more buttons in the selection menu: Roof is used to add roofs to houses. The correct placement
the tiles is a bit difficult, but if you fumble around for a while it works too. Another one
The problem is to set that the roofs become transparent as soon as you enter the house. This is done by (presumably) special ones
Tiles I'll get to in a moment.

Special Tiles are tiles that have very special functions. For example, you determine where the town portal is in the city
arises where the corpse lies and the like. The rule of thumb here is: if you don't exactly know what an individual is
If you make special tiles, you shouldn't throw them out when editing, but leave them in their place. Would be stupid
if you forget to place the TP-Tile in Harrogath and your hero ends up teleporting in Neverland.

There is one important thing when tinkering around with
Take note of tiles and walls. As you know from the game, you can
your hero does not walk over certain areas of the map (lava, rivers) and also not in a ghostly way through walls
through. This is realized by the so-called walkable info. Press the in the editor
Space key and you turn it on. Another pressure gives you the detailed view in which the individual
Tiles can be broken down even more precisely.

Each tile is made up of 5 times 5 "sub-tiles".
You can think of these 25 boxes as the possible locations of the characters on one
Imagine Tile. So if you move around in the game, your hero will run off the
Sub-tile one tile to another
Sub-tile of another tile.
Now each of these 25 resulting boxes can have a different walkable setting.
The extended display (i.e. after pressing the space key twice) shows you what is in a sub-tile
is allowed and what is not. For example, there is the possibility that the Sub-Tile only has that
To prevent the character from walking through, this would apply to all walls, for example. Then there are some that are not penetrable for shots
or prevent skipping with the barbarian skill Leap / Leap-Attack.

So when you build your maps, don't forget to check whether your character can walk everywhere he should.
It's pretty frustrating to make a map and meticulously lay out the floor tiles just to be
to find out afterwards that you can't walk over it at all.
Note: With most floor tilesets there are some in the selection menu at the beginning
have no restrictions whatsoever. If you look at maps, you will find that large areas are solely and exclusively
these things are designed. But what looks monotonous and repetitive in the editor will look different in the game afterwards.
These tiles are only representative of a pool of other tiles from which the floor will be built later in the game
So don't worry, if it looks monotonous in the editor, it doesn't necessarily have to look that way in the game.

So, now you already know how to change the walls and floor graphics and thus rebuild almost the entire level. To
Questions like “How can I change the map size?”, “How can I use tiles from other maps?” Or “How can I
Increase the number of layers in a map? ”I'll come later.
First of all, there is one more thing that is important when editing the maps: objects. These are
Things that you can interact with or that have special effects. Examples of the former are, for example, the people in the
City, treasure chests or waypoints. Examples of the second would be torches that illuminate the area or fire on the
Soils that will hurt your character if they walk through them.
Open the Tristram map again and switch to object mode (press the Tab key once). You will find
that the screen is literally flooded with objects. For the most part it is
Fire, but sometimes you will also find other things, e.g. the spawn point of Griswold (i.e. the place on the map where Griswold
is created when your character comes close), the spawnpoints of some champion monsters, Cain's cage (Cain's Gibbet) or
but host's corpse. All of these are objects.

Editing of these is basically the same as for walls and floors. Left-click them to select them (sometimes it is
a bit choppy), Ctrl + X deletes and Ctrl + C copied. To insert new objects, press the
Insert key (yes, right above Return, another piece, not the one there, DIE DA, via Del ^^). Now becomes a
Object placed there in the landscape (mostly gheed). A right click on it opens a
Selection menu in which you can now choose something suitable.
Most of the NPCs can be found under the Type 1 column, and there are also some other things in there, e.g. the spawn points of
Superunique monsters. You can easily put these in cards of each act (e.g. Charsi in the Harrogath card). Looks differently
it ends with objects of type 2, which are act-dependent and can only be placed in the appropriate cards. You may
notice that very many have a "?" as a description, this is because many are not yet known (who has fun with it,
can experiment).

Another hint: It is better to avoid placing special objects more than once, such as waypoints. Could
be that this leads to the game crashing.

So you have now successfully rebuilt Tristram, saved it and are satisfied with your work, but how do I get it now
the new map in my Diablo 2 game?
Just like with any other file. You simply add it to Patch_d2.mpq with MPQ2K or another program
a. Note for the paths: The maps are below data \ global \ tiles hidden, then it goes on with

.. \ act1 \ ..
.. \ act2 \ ..
.. \ act3 \ ..
.. \ act4 \ ..
depending on which file your card belongs to and then there is a subfolder (such as “town” for the huntress camp). The
Incidentally, complete paths are in the lvlprest.txt, just look there if you don't know what to do with the file.

Now you know the essentials about actually editing the cards and I recommend practicing a little with them to deepen your knowledge.
It continues with more organizational aspects, i.e.:

  • how can I open cards other than the one given?
  • how can I open several cards at the same time?
  • how can I use other tiles for my map?
  • how can I increase the number of layers? (needs Iselveo's editor)
  • how can I change the map size? (needs Iselveo's editor)

How can I open cards other than the one given?

First of all, of course, you first need the appropriate .ds1 file for the corresponding card. It is best to have a look at the
lvlprest.txt after, there is a short description of the map in the leftmost column and further to the right follow in
some columns the name and path of the appropriate .ds1. Often you will find several files for one area. That's because
Most areas look different each time the game is started, so there are several variants for one and the same area. The fifth
Level of the Countess's Tower, for example: There is a variant with the level facing northeast and one facing northwest. Possible
are in principle up to six variants per level, so theoretically you could have up to six different variants of the
Create tower levels.
But back to the actual problem: You have now extracted the corresponding .ds1 and placed it in the level editor folder
saved. The next step is to create a new .bat file. To do this, you simply create a new one
.txt file and rename it to .bat. The file name doesn't really matter, choose a suitable one so that you know which one
.bat which card opens. Alternatively, you can also change one of the existing .bats, so you don't need any
create new ones. It just depends on how you organize the whole thing: a suitable .bat for each .ds1 or just one
.bat, which is adapted for the respective card.

Next we need to determine the action the .bat will take. To do this, right click on them and choose "Edit".
Regardless of whether you have opened an existing .bat or created a new one, you now enter the following:

@echo off (I mentioned above, just write it down)
win_ds1edit parameter 1 (see below)
Parameter 2 (see below)> debug_ .txt

Let's break this apart:

win_ds1edit is the instruction to use the win_ds1edit
open the card with the name below.

Parameter 1 is, so to speak, a number that determines which tileset is used for the card. your
can be found in the lvltypes.txt in the first column. Just go to the line your level belongs to and uses
the number in the column Id as a parameter.
Example: Let's say you want to change one of the harem levels of the palace in Act 2. The appropriate parameter would be
then number 14.

Parameter 2 is similar to parameter 1 and determines the line in the lvlprest.txt. Just look for that
Line containing the file name of your card and use the number in the column Def as the second parameter.
Against the example of harem level: We want to open the file Harem2.ds1 (the first level of the harem, the one without monsters), that would be
so Def 353.

> debug_ .txt only ensures that an error log is created,
by being able to understand all the steps processed by the program and any errors that may have occurred. The name can
don't care.

That's all. Save the .bat and then start it, then the level should be loaded correctly. Basically very simple, you
you just have to be careful with the parameters, if it doesn't work it is mostly because of that.

As an example again the complete entry in the .bat to open the file Cathy3.ds1
(Chapel of the monastery in the first act):

@echo off
win_ds1edit Cathy3.ds1 9 257> debug_Cathedral.txt

How can I open multiple cards at the same time?

Sometimes it can make sense to process several cards in parallel, e.g. because you have elements of one card in the
want to take over another or because you need the other for comparison. In this case, too, Ds1Edit is equipped and allowed
open up to ten different cards at the same time.

For this purpose we need a new file, this time an .ini. Create them like you already created the .bats, just ne
Insert a new .txt file and then rename it to .ini. All in the editor directory, of course. You wear the .ini
then the .ds1 files to be opened with the associated parameters. So the whole thing looks like this:

Name of the .ds1 file

where is taken from the lvltypes.txt comes and from the
lvlprest.txt. So the whole thing could look like this:

2 43 FallCmp5.ds1
2 43 FallCmp6.ds1
2 43 FallCmp7.ds1
2 44 FallCmpBish.ds1
20 529 DockTown3.ds1

Do you have all the files that you want to open in there, save the whole thing and now open a .bat (either a new,
or an already existing one). The entry there must now look like this:

@echo off
win_ds1edit > debug.txt

This means that win_ds1edit no longer opens a single .ds1, but all of the ones in the .ini. Try it out. in the
Editor itself you switch back and forth between the individual cards using the number keys (1-0).

Be careful when copying between the cards: If the parameters (in the .ini) do not exactly match, it can
It can happen that parts of the copied disappear because not all cards use the same tile. More on this topic
(other tiles for the cards) follows in the next sections.

How can I use other tilesets in my map?

Now let's take a look at how we can use the tiles from other levels. The whole thing is a little complicated when you have it
However, if you've done it a couple of times, it's half bad.
Furthermore, one more note right from the start: It is generally not possible to create tiles from other files without
import unsightly color effects. The reason for this is that D2 / LoD uses its own 256-color palette for each act.
If you now use tile sets from other files, they will be assigned different colors by the different palette
than intended, which sometimes doesn't look really great. For some it works quite well (Akt5 tiles also see in the 1st act
passable), with others less (Akt4 tiles in the 1st act - they get pink spots). If necessary, the .dt1 files
change (in which the graphics of the tiles are stored) to get that, but I won't go into that at this point.

Let's just start. Grab the file lvltypes.txt and open it. It now says which .dt1s for which
Level can be used. You can see the different level types below each other and in the columns to the right of them
File1-31 the .dt1s used with their path names. But what are .dt1 files actually?
As mentioned above, the .dt1s essentially contain the graphics that are placed on the tiles - such as a wall or a
Tree. In addition, the "Walkable" information is stored there, i.e. which Sub-Tile can be walked on, etc. and a number of others
Things that need not interest us. The graphics can be those of the floors as well as the walls. If
If you imagine the level editor like a Lego box, then the .dt1s are more or less individual building sets, each of which has a specific set
Contains components (one the trees, another stones, etc.).
How do I find out in which .dt1 the tile I need is hidden? Good question, about which I will go back in paragraphs
could write. The best thing to do is to think about the level in which the tile appears and then try the .dt1s in question
by. Alternatively, you can download tools, such as the DT1Tools (again by Paul Siramy) or Cv5.2. With both you can
you look at the .dt1s directly. Further information in the corresponding readme files.

How do I make new .dt1s available for a certain level? You already guessed it: by adding the corresponding entries in
copy the correct line. Assuming you want to build the cemetery tiles in the first act in the camp of the hunters,
then you copy the entry Act1 / Graveyard / graveyrd.dt1 from the Wilderness line to a free cell in the Town line
(File 11).
At this point again an important note: Avoid deleting any .dt1s or using others to do so
replace - causes trouble in 99% of all cases. Only if you are absolutely
you can be sure that not a single tile of the .dt1 is used in the area concerned, you can throw them out.

Here we are now done, save the lvltypes.txt and closes it.

Next we'll button them lvlprest.txt before and now it gets a little mathematical. First look for the line of
.ds1 file that you want to edit and scroll all the way to the right to the column Dt1Mask. You can now find one there
Pay and wonder where it comes from.

Basically, it's pretty simple. This number is a sum of powers of two and serves as a mask for the lvltypes.txt.
More precisely, this number determines which of the FileColumns in the lvltypes.txt for the corresponding .ds1 file
also really be loaded.

Let's take a look at this:

File1 corresponds to a value of 2 ^ 0 = 1
File2 corresponds to a value of 2 ^ 1 = 2
File3 corresponds to a value of 2 ^ 2 = 4
File4 corresponds to a value of 2 ^ 3 = 8
File5 corresponds to a value of 2 ^ 4 = 16
File6 corresponds to a value of 2 ^ 5 = 32
File7 corresponds to a value of 2 ^ 6 = 64
File8 corresponds to a value of 2 ^ 7 = 128
File9 corresponds to a value of 2 ^ 8 = 256
File10 corresponds to a value of 2 ^ 9 = 512
File11 corresponds to a value of 2 ^ 10 = 1,024
File12 corresponds to a value of 2 ^ 11 = 2.048
File13 corresponds to a value of 2 ^ 12 = 4,096
File14 corresponds to a value of 2 ^ 13 = 8,192
File15 corresponds to a value of 2 ^ 14 = 16,384
File16 corresponds to a value of 2 ^ 15 = 32,768
File17 corresponds to a value of 2 ^ 16 = 65,536
File18 corresponds to a value of 2 ^ 17 = 131,072
File19 corresponds to a value of 2 ^ 18 = 262,144
File20 corresponds to a value of 2 ^ 19 = 524,288
File21 corresponds to a value of 2 ^ 20 = 1,048,576
File22 corresponds to a value of 2 ^ 21 = 2,097,152
File23 corresponds to a value of 2 ^ 22 = 4,194,304
File24 corresponds to a value of 2 ^ 23 = 8,388,608
File25 corresponds to a value of 2 ^ 24 = 16,777,216
File26 corresponds to a value of 2 ^ 25 = 33,554,432
File27 corresponds to a value of 2 ^ 26 = 67,108,864
File28 corresponds to a value of 2 ^ 27 = 134,217,728
File29 corresponds to a value of 2 ^ 28 = 268,435,456
File30 corresponds to a value of 2 ^ 29 = 536,870,912
File31 corresponds to a value of 2 ^ 30 = 1,073,741,824

The "mask" now consists of the sum of the numbers of the used Columns. Suppose we want to use the .dt1s,
those in the lvltypes.txt are in the columns File1, File6, File7 and File 13, then the sum would be:

1 + 32 + 64 + 8129 = 8226

We then carry this value in the column Dt1Mask in the lvlprest.txt a.

Another example: How do you get the mask value 959 in the column “Act 1 - Town 1”? We see this in the
lvltypes.txt in the line "Act1 - Town" and notice: There are entries in File1-6 and File8-10. As a result
is after Adam Ries

1 + 2 + 4 + 8 + 16 + 32 + 128 + 256 + 512 = 959

So all of the .dt1 files listed there are actually loaded and used.

You have surely noticed that I always emphasized the "use". There is also a reason for this: To a level type in the
lvltypes.txt may well belong to a large number of .ds1 files, but apparently few of them really make use of them
also all in the lvltypes.txt .dt1s set as available.
This apparently cumbersome "masking" is only used to improve performance: Why should the game 20
Load mega-fat graphic files for each individual .ds1 (.dt1s range in file sizes from a few dozen kB to more
than 2 MB!), if in the end only 3 of them are really needed. Therefore you should also use this page for your maps
because you can possibly improve the performance with it.

So do you have the values ​​in the Dt1Mask changed accordingly, the lvlprest.txt saved and
closed it. Now you pack both files (lvltypes.txt and lvlprest.txt) in the Patch_D2.mpq, or stop directly in the mod_dir
Directory, if you've created one. If you have packed the files in the Patch_d2, you still have to make sure,
that the editor also loads them (i.e. possibly change the entry in the Ds1edit.ini).

Finished! From now on you can in the levels that you in the lvlprest.txt have also marked other tiles accordingly
use. If it doesn't work and the editor doesn't load the map, the .bat window instead loads the commands
If you scroll down and then quit the editor, you must have made a mistake when calculating the Dt1Mask value
(is the main cause for me). The debug file is also extremely useful for a closer examination, as it tells you exactly
at which point and why the charging process was ended.

Guide from Red Havoc