Overview

This file controls how the game controls the area levels, including how the level is built, what rules are allowed on the level, and what monsters/objects can spawn on the level.

This file uses the following files: AutoMap.txt, LevelGroups.txt, LvlMaze.txt, LvlPrest.txt, LvlSub.txt, LvlTypes.txt, LvlWarp.txt, monstats.txt, Objgroup.txt

Data Fields

Name – Defines the unique name pointer for the area level, which is used in other files

Id – Defines the unique numeric ID for the area level, which is used in other files

Pal – Defines which palette file to use for the area level. This uses index values from 0 to 4 to convey Act 1 to Act 5.

Act – Defines the Act number that the area level is a part of. This uses index values from 0 to 4 to convey Act 1 to Act 5.

QuestFlag – Controls what quest record that the player needs to have completed before being allowed to enter this area level, while playing in Classic Mode. Each quest can have multiple quest records, and this field is looking for a specific quest record from a quest.

QuestFlagEx – Controls what quest record that the player needs to have completed before being allowed to enter this area level, while playing in Expansion Mode. Each quest can have multiple quest records, and this field is looking for a specific quest record from a quest.

CodeDescription
0Act 1 Prologue Seen
1Den of Evil Complete
2Sisters’ Burial Grounds Complete
3Tools of the Trade Complete
4The Search for Cain Complete
5The Forgotten Tower Complete
6Sisters to the Slaughter Complete
7Act 1 Traversed
8Act 2 Prologue Seen
9Radament’s Lair Complete
10The Horadric Staff Complete
11The Tainted Sun Complete
12The Arcane Sanctuary Complete
13The Summoner Complete
14The Seven Tombs Complete
15Act 2 Traversed
16Act 3 Prologue Seen
17Lam Esen’s Tome Complete
18Khalim’s Will Complete
19Blade of the Old Religion Complete
20The Golden Bird Complete
21The Blackened Temple Complete
22The Guardian Complete
23Act 3 Traversed
24Act 4 Prologue Seen
25The Fallen Angel Complete
26Terror’s End Complete
27The Hellforge Complete
28Act 4 Traversed
29Rogue Warning Complete
30Guard in Town Warning Complete
31Guard in Desert Warning Complete
32Dark Wanderer Seen
33Angel Warning Complete
34Act 5 Prologue Seen
35Siege on Harrogath Complete
36Rescue on Mount Arreat Complete
37Prison of Ice Complete
38Betrayal of Harrogath Complete
39Rite of Passage Complete
40Eve of Destruction Complete
41Respec from Akara Complete

Layer – Defines a unique numeric ID that is used to identify which Automap data belongs to which area level when saving and loading data from the character save.

SizeX & SizeX(N) & SizeX(H) – Specifies the Length tile size values of an entire area level, which are used for determining how to build the level, for Normal, Nightmare, and Hell Difficulty, respectively.

SizeY & SizeY(N) & SizeY(H) – Specifies the Width tile size values of an entire area level, which are used for determining how to build the level, for Normal, Nightmare, and Hell Difficulty, respectively.

OffsetX & OffsetY – Specifies the location offset coordinates (measured in tile size) for the origin point of the area level in the world.

Depend – Assigns another level to be this area level’s depended level, which controls this area level’s position and how it starts building its tiles. Uses the level “Id” field. If this equals 0, then ignore this.

Teleport – Controls the functionality of the Sorceress Teleport skill and the Assassin Dragon Flight skill on the area level

CodeDescription
0Teleport is disabled on the area level
1Teleport is enabled on the area level
2Teleport is enabled on the area level but adheres to the collision of the rooms

Rain – Boolean Field. If equals 1, then allow rain to play its effects on the area level. If the level is part of Act 5, then it will snow on the area level, instead of rain. If equals 0, then it will never rain on the area level.

Mud – Boolean Field. If equals 1, then random bubbles will animate on the tiles that are flagged as water tiles. If equals 0, then ignore this.

NoPer – Boolean Field. If equals 1, then allow the use of display option of Perspective Mode while the player is in the level. If equals 0, then disable the option of Perspective Mode and force the player to use Orthographic Mode while the player is in the level.

LOSDraw – Boolean field. If equals 1, then the level will check the player’s line of sight before drawing monsters. If equals 0, then ignore this.

FloorFilter – Boolean field. If equals 1 and if the floor’s layer in the area level equals 1, then draw the floor tiles with a linear texture sampler. If equals 0, then draw the floor tiles with a nearest texture sampler.

BlankScreen – Boolean field. If equals 1, then draw the area level screen. If equals 0, then do not draw the area level screen, meaning that the level will be a blank screen.

DrawEdges – Boolean field. If equals 1, then draw the areas in levels that are not covered by floor tiles. If equals 0, then ignore this.

DrlgType – Determines the type of Dynamic Random Level Generation used for building and handling different elements of the area level. Uses a numeric code to handle which type of DRLG is used.

CodeDescription
0None
1Maze
2Preset
3Outdoor

LevelType – Defines the Level Type used for this area level. Uses the Level Type’s ID, which is determined by what order it is defined in the LvlType.txt file.

SubType – Controls the group of tile substitutions for the area level (see LvlSub.txt). There are defined sub types to choose from.

CodeDescription
-1None
0Border Cliffs
1Border Middle
2Border Corner
3Border General
4Border Wild Waypoint
5Border Wild Shrine
6Border Wild Themes
7Border Desert Waypoint
8Border Desert Shrine
9Border Desert Themes
10Siege Dirt
11Siege Snow
12Barricade
13Broken Barricade

SubTheme – Controls which theme number to use in a Level Substitution (See LvlSub.txt). The allowed values are 0 to 4, which convey which “Prob#”, “Trials#”, and “Max#” field to use from the LvlSub.txt file. If this equals -1, then there is no sub theme for the area level.

SubWaypoint – Controls the level substitutions for adding waypoints in the area level (see LvlSub.txt). This uses a defined sub type to choose from (See “SubType”). This will depend on the room having a waypoint tile.

SubShrine – Controls the level substitutions for adding shrines in the area level (see LvlSub.txt). This uses a defined sub type to choose from (See “SubType”). This will depend on the room allowing for a shrine to spawn.

Vis0 (to Vis7) – Defines the visibility of other area levels involved with this area level, allowing for travel functionalities between levels. This uses the “Id” field of another defined area level to link with this area level. If this equals 0, then no area level is specified.

Warp0 (to Warp7) – Uses the “Id” field from LevelWarp.txt, which defines which Level Warp to use when exiting the area level. This is connected with the definition of the related “Vis#” field. If this equals -1, then no Level Warp is specified which should also mean that the related “Vis#” field is not defined.

Intensity – Controls the intensity value of the area level’s ambient colors. This affects brightness of the room’s RGB colors. Uses a value between 0 and 128. If all these related fields equal 0, then the game ignores setting the area level’s ambient colors.

Red – Controls the red value of the area level’s ambient colors. Uses a value between 0 and 255.

Green – Controls the green value of the area level’s ambient colors. Uses a value between 0 and 255.

Blue – Controls the blue value of the area level’s ambient colors. Uses a value between 0 and 255.

Portal – Boolean Field. If equals 1, then this area level will be flagged as a portal level, which is saved in the player’s information and can be used for keeping track of the player’s portal functionalities. If equals 0, then ignore this.

Position – Boolean Field. If equals 1, then enable special casing for positioning the player on the area level. This can mean that the player could spawn on a different location on the area level, depending on the level room’s position type. An example can be when the player spawns in a town when loading the game, or using a waypoint, or using a town portal. If equals 0, then ignore this.

SaveMonsters – Boolean Field. If equals 1, then the game will save the monsters in the area level, such as when all players leave the area level. If equals 0, then monsters will not be saved and will be removed. This is usually disabled for areas where monsters do not spawn.

Quest – Controls what quest record is attached to monsters that spawn in this area level. This is used for specific quests handling lists of monsters in the area level.

CodeDescription
0Act 1 Prologue Seen
1Den of Evil Complete
2Sisters’ Burial Grounds Complete
3Tools of the Trade Complete
4The Search for Cain Complete
5The Forgotten Tower Complete
6Sisters to the Slaughter Complete
7Act 1 Traversed
8Act 2 Prologue Seen
9Radament’s Lair Complete
10The Horadric Staff Complete
11The Tainted Sun Complete
12The Arcane Sanctuary Complete
13The Summoner Complete
14The Seven Tombs Complete
15Act 2 Traversed
16Act 3 Prologue Seen
17Lam Esen’s Tome Complete
18Khalim’s Will Complete
19Blade of the Old Religion Complete
20The Golden Bird Complete
21The Blackened Temple Complete
22The Guardian Complete
23Act 3 Traversed
24Act 4 Prologue Seen
25The Fallen Angel Complete
26Terror’s End Complete
27The Hellforge Complete
28Act 4 Traversed
29Rogue Warning Complete
30Guard in Town Warning Complete
31Guard in Desert Warning Complete
32Dark Wanderer Seen
33Angel Warning Complete
34Act 5 Prologue Seen
35Siege on Harrogath Complete
36Rescue on Mount Arreat Complete
37Prison of Ice Complete
38Betrayal of Harrogath Complete
39Rite of Passage Complete
40Eve of Destruction Complete
41Respec from Akara Complete

WarpDist – Defines the minimum pixel distance from a Level Warp that a monster is allowed to spawn near. Tile distance values are converted to game pixel distance values by multiplying the tile distance value by 160 / 32, where 160 is the width of pixels of a tile.

MonLvl & MonLvl(N) & MonLvl(H) – Controls the overall monster level for the area level for Normal, Nightmare, and Hell Difficulty, respectively. This is for Classic mode only. This can affect the highest item level allowed to drop in this area level.

MonLvlEx & MonLvlEx(N) & MonLvlEx(H) – Controls the overall monster level for the area level for Normal, Nightmare, and Hell Difficulty, respectively. This is for Expansion mode only. This can affect the highest item level allowed to drop in this area level.

MonDen & MonDen(N) & MonDen(H) – Controls the monster density on the area level for Normal, Nightmare, and Hell Difficulty, respectively. This is a random value out of 100000, which will determine whether to spawn or not spawn a monster pack in the room of the area level. If this value equals 0, then no random monsters will populate on the area level.

MonUMin & MonUMin(N) & MonUMin(H) – Defines the minimum number of Unique Monsters that can spawn in the area level for Normal, Nightmare, and Hell Difficulty, respectively. This field depends on the related “MonDen” field being defined.

MonUMax & MonUMax(N) & MonUMax(H) – Defines the maximum number of Unique Monsters that can spawn in the area level for Normal, Nightmare, and Hell Difficulty, respectively. This field depends on the related “MonDen” field being defined. Each room in the area level will attempt to spawn a Unique Monster with a 5/100 random chance, and this field’s value will cap the number of successful attempts for the entire area level.

MonWndr – Boolean Field. If equals 1, then allow Wandering Monsters to spawn on this area level (see wanderingmon.txt). This field depends on the related “MonDen” field being defined. If equals 0, then ignore this.

MonSpcWalk – Defines a distance value, used to handle monster pathing AI when the level has certain pathing blockers, such as jail bars or rivers. In these cases, monsters will walk randomly until a player is located within this distance value or when the monsters find a possible path to target the player. If this equals 0, then ignore this field.

NumMon – Controls the number of different monsters randomly spawn in the area level. The maximum value is 13. This controls the number of random selections from the 25 related “mon#” and “umon#” fields or “nmmon#” fields, depending on the game difficulty.

mon1 (to mon25) – Defines which monsters can spawn on the area level for Normal Difficulty. Uses the monster “Id” field from the monstats.txt file.

rangedspawn – Boolean Field. If equals 1, then for the first monster, try to pick a ranged type. If equals 0, then ignore this.

nmon1 (to nmon25) – Defines which monsters can spawn on the area level for Nightmare Difficulty and Hell Difficulty. Uses the monster “Id” field from the monstats.txt file.

umon1 (to umon25) – Defines which monsters can spawn as Unique monsters on this area level for Normal Difficulty. Uses the monster “Id” field from the monstats.txt file.

cmon1 (to cmon4) – Defines which Critter monsters can spawn on the area level. Uses the monster “Id” field from the monstats.txt file. Critter monsters are determined by the “critter” field from the monstats2.txt file.

cpct1 (to cpct4) – Controls the percent chance (out of 100) to spawn a Critter monster on the area level.

camt1 (to camt4) – Controls the amount of Critter monsters to spawn on the area level after they succeeded their random spawn chance from the related “cpct#” field.

Themes – Controls the type of theme when building a level room. This value is a summation of possible values to build a bit mask for determining which themes to use when building a level room. For example, a value of 60 means that the area level can have the following themes: 32, 16, 8, 4.

CodeDescription
0No Theme
1Object Empty Theme (no objects spawn)
2Barrel Theme (create random barrel objects)
4Shrine Theme
8Treasure Theme (create random items)
16Armor Stand Theme
32Weapon Rack Theme

SoundEnv – Uses the “Index” field from SoundEnviron.txt, which controls what music is played while the player is in the area level

Waypoint – Defines the unique numeric ID for the Waypoint in the area level. If this value is greater than or equal to 255, then ignore this field.

LevelName – String Field. Used for displaying the name of the area level, such as when in the UI when the Automap is being viewed.

LevelWarp – String Field. Used displaying the entrance name of the area level on Level Warp tiles that link to this area level. For example, when the player mouse hovers over a tile to warp to the area level, then this string is displayed.

LevelEntry – String Field. Used for displaying the UI popup title string when the player enters the area level.

ObjGrp0 (to ObjGrp7) – Uses a numeric ID to define which possible Object Groups to spawn in this area level (See objgroup.txt). The game will go through each of these fields, so there can be more than 1 Object Group used in an area level. If this value equals 0, then ignore this.

ObjPrb0 (to ObjPrb7) – Determines the random chance (out of 100) for each Object Group to spawn in the area level. This field depends on the related “ObjGrp#” field being defined.

LevelGroup – Defines what group this level belongs to. Used for condensing level names in desecrated (terror) zones messaging. See LevelGroups.txt.