Random vault (UnNetHack)

From NetHackWiki
Jump to: navigation, search

Random vaults (not to be confused with Vaults) are a part of the level generation formula introduced in UnNetHack.

Despite the name, "random vaults" are really "random rooms" and connect to the rest of the dungeon normally.

A user has suggested improving this page or section as follows:

"This is still confusing - as evidenced by the talk page... Also, the article is very unattractive, and someone should fix the vaults left as des files"

All rooms in the main branch of the dungeon that are not gold vaults or part of special levels are selected from the list of random vaults.

When selecting what random vault to place, each random vault except the "Normal Random Room" has a 1/2050 chance of being selected. If none are chosen, the vault selected is "Normal Random Room" - which is simply a normal room as you would often find in vanilla and has a 2000/2050 or 40/41 chance of being generated. In addition, some of these vaults (including "Normal Random Room") can be further transformed into Special rooms. When this is possible, it is stated in the description of the individual vault, and follows the normal probabilities for generating special rooms.


Possible Vaults

  • Normal Random Room
    • Exactly what it says on the tin, this is a normal room. It can be converted into any possible special room. It is also the only one with a unique chance of being generated, (40/41 compared to 1/2050)
  • Fake Delphi
    • This 11x9 vault looks a bit like the room the oracle is in - a big room with a small room in the center
    • Both the room and the subroom are guaranteed to be lit
    • There is a door to the subroom, with a 25% chance of a second door. Both doors have a chance of being locked and/or trapped and/or secret.
  • Room with a subroom
    • This is just a random room with a random subroom
    • There is a door to the subroom with a chance of being locked and/or trapped and/or secret.
  • Big room 1
    • This is a random 30x10 room
    • It has a 75% of having a random normal room as a subroom. This subroom will have a randomly placed door with a 50% chance of a second door. Both doors have a chance of being locked and/or trapped and/or secret.
  • lava/ice/pool/tree/fountain room
    • This is a 3x3 room.
    • The center square of the room has an equal chance of being lava, ice, pool, tree, or fountain.
    • Each other square has a 10% chance of being the same as the center square.
  • Big room 2
    • This 10x17 random vault has 2d3 random hostile monsters inside it
  • thin, long, horizontal room
    • This 17x3 random vault has 2d3 random hostile monsters inside it
  • thin, long, vertical room
    • This 3x17 random vault has 2d3 random hostile monsters inside it
  • tiny cage, big monster
    • This 5x5 random vault is just a random room with a 2x2 subroom if it is generated on Dungeon Level 1 or 2
    • If it is generated on level 3 or lower, that subroom also has a random M, D, O, Z, T, or H and the monster will now be caged in iron bars
  • room with dangerous monster and loot
    • This randomly sized vault contains a random hostile monster M, D, O, Z, T, or H (100% chance)
    • In addition to that monster, there is a 50% chance of a second hostile monster M, D, O, Z, T, or H, and a 25% chance of a third monster M, D, O, Z, T, or H.
    • The 25% chance monster is not guaranteed to be hostile.
    • These percentages are calculated independently, so there is still a 25% chance, even if the 50% chance fails.
    • In addition to the guaranteed monster and the two possible monsters, there is a 100% chance of a random object. There is an additional 75% chance of a second object, a 50% chance of a third object, a 25% chance of a fourth object (this one will be blessed if it appears), and a 10% chance of a fifth object (this one will be blessed if it appears).
    • As with the monster percentages, these object percentages are calculated independently, so each check takes place, regardless of the success or failure of previous checks.
  • boulder room
    • This otherwise normal room contains 1d6+3 boulders, and 1d4 rolling boulder traps
  • spider nest
    • This otherwise normal room contains 3d3 webs
  • ice room
    • This is a normal room, except the floor is replaced by ice
  • random cloud/lava/ice/pool/tree room
    • This is a normal room, except 30% of the tiles are replaced with cloud, lava, ice, pools, or trees (all will be the same type of replacement)
  • buried treasure
    • This room can take the form of any other special room
    • Buried somewhere in the room is a chest filled with 3d4 random objects
  • massacre
    • This is a normal room filled with bodies from some horrific massacre.
    • There are 5d5 random corpses from the following list:
      '@', "apprentice", "warrior", "ninja", "thug", "hunter", "acolyte", "abbot", "page", "attendant", "neanderthal", "chieftain", "student", "wizard", "valkyrie", "tourist", "samurai", "rogue", "ranger", "priestess", "priest", "monk", "knight", "healer", "cavewoman", "caveman", "barbarian", "archeologist"
    • Each corpse generated has a 90% chance of being the same as the previous corpse generated, so the most likely outcome is multiple instances of a few types
  • statuary
    • This is a normal room with 5d5 random statues
    • There is a 50% chance each for the existence of 3 statue traps
  • light source
    • This is a normal unlit room
    • There will be a lit oil lamp sitting in the room (if you get there before it burns out)
  • temple of the gods
    • There are 3 randomly placed altars in this room, one of each alignment
  • Mausoleum
LEVEL:"vlt-%04i"
FLAGS:rndvault
ROOM:"rndvault", random, random, random, (5,5) {
  TERRAIN:(1,1) & (2,1) & (3,1) &
          (1,2) &         (3,2) &
          (1,3) & (2,3) & (3,3), '-'
  IF [50%] {
    $mons = MONSTER: { 'M', 'V', 'L', 'Z' }
    SHUFFLE: $mons
    MONSTER:$mons[0],(2,2), hostile
  } ELSE {
    OBJECT:('%', "corpse"), random, montype:'@'
  }

  IF [20%] {
    $place = { (2,1), (1,2), (3,2), (2,3) }
    SHUFFLE: $place
    TERRAIN: $place[0], 'S'
  }
}
  • big room, 1, random type
    • This 17x10 room will be a larger version of any type of randomly generated room
  • big room, 2 (max. vertical height), filled with fog
    • This 10x17 normal room has a lot of clouds in it, plus 2d3 random hostile monsters
  • very thin, long, horizontal room
    • this 50x3 room has 2d3 random hostile monsters
  • very very thin, long, horizontal room
    • this 70x3 room has 2d3 random hostile monsters
  • L-shaped

-----xxx
|...|xxx
|...|xxx
|...----
|......|
|......|
|......|
--------
    • This room can exist in any of the 4 possible rotations. It can be turned into any type of special room.
  • L-shaped, big

-------xxxxxx
|.....|xxxxxx
|.....|xxxxxx
|.....|xxxxxx
|.....|xxxxxx
|.....-------
|...........|
|...........|
|...........|
|...........|
|...........|
-------------
    • This room can exist in any of the 4 possible rotations. It can be turned into any type of special room.
  • Blocked center

-----------
|.........|
|.........|
|.........|
|...}}}...|
|...}}}...|
|...}}}...|
|.........|
|.........|
|.........|
-----------
    • It is possible for lava to be replaced with either pools or solid rock
    • This room can be turned into any type of special room
  • circular, small

xx---xx
x--.--x
|-...-|
|.....|
|-...-|
x--.--x
xx---xx
    • This room can be turned into any type of special room
  • circular, medium

xx-----xx
x--...--x
|-.....-|
|.......|
|.......|
|.......|
|-.....-|
x--...--x
xx-----xx
    • This room can be turned into any type of special room
  • circular, large

xxx-----xxx
x---...---x
x-.......-x
|-.......-|
|.........|
|.........|
|.........|
|-.......-|
x-.......-x
x---...---x
xxx-----xxx
    • This room can be turned into any type of special room
  • T-shaped

xxx-----xxx
xxx|...|xxx
xxx|...|xxx
----...----
|.........|
|.........|
|.........|
-----------
    • This room can exist in any of the 4 possible rotations. It can be turned into any type of special room.
  • S-shaped

-----xxx
|...|xxx
|...|xxx
|...----
|......|
|......|
|......|
----...|
xxx|...|
xxx|...|
xxx-----
    • This room can exist in any of the 2 possible rotations. It can be turned into any type of special room.
  • Z-shaped

xxx-----
xxx|...|
xxx|...|
----...|
|......|
|......|
|......|
|...----
|...|xxx
|...|xxx
-----xxx
    • This room can exist in any of the 2 possible rotations. It can be turned into any type of special room.
  • U-shaped

-----xxx-----
|...|xxx|...|
|...|xxx|...|
|...-----...|
|...........|
|...........|
|...........|
-------------
    • This room can exist in any of the 2 possible rotations. It can be turned into any type of special room.
  • C-shaped

--------
|......|
|......|
|...----
|...|xxx
|...|xxx
|...----
|......|
|......|
--------
    • This room can exist in any of the 2 possible rotations. It can be turned into any type of special room.
  • Tetris L-shaped

-----xxx
|...|xxx
|...|xxx
|...|xxx
|...|xxx
|...|xxx
|...----
|......|
|......|
|......|
--------
    • This room can exist in any of the 4 possible rotations. It can be turned into any type of special room.
  • Tetris J-shaped

xxx-----
xxx|...|
xxx|...|
xxx|...|
xxx|...|
xxx|...|
----...|
|......|
|......|
|......|
--------
    • This room can exist in any of the 4 possible rotations. It can be turned into any type of special room.
  • 4-Leaf Clover

-----x-----
|...|x|...|
|...---...|
|.........|
---.....---
xx|.....|xx
---.....---
|.........|
|...---...|
|...|x|...|
-----x-----
    • It can be turned into any type of special room.
  • Watcher in the Water
  • room with sessile growths
  • Pillars
LEVEL:"vlt-%04i"
FLAGS:rndvault
ROOM:"ordinary", random, random, random, (10, 10) {
  $terr = terrain: { '-', '-', '-', '-', '-', 'L', 'I', 'P', 'T' }
  SHUFFLE: $terr
  FOR $y = 0 TO ((room.height - 3) / 4) {
    FOR $x = 0 TO ((room.width - 3) / 4) {
       TERRAIN:coord(($x * 4) + 2, ($y * 4) + 2), $terr[0]
       TERRAIN:coord(($x * 4) + 3, ($y * 4) + 2), $terr[0]
       TERRAIN:coord(($x * 4) + 2, ($y * 4) + 3), $terr[0]
       TERRAIN:coord(($x * 4) + 3, ($y * 4) + 3), $terr[0]
    }
  }
}
  • Small, tightly-spaced pillars
LEVEL:"vlt-%04i"
FLAGS:rndvault
ROOM:"ordinary", random, random, random, random {
  IF [ (room.width % 2) == 0 ] { BREAK }
  IF [ (room.height % 2) == 0 ] { BREAK }
  $terr = terrain: { '-', '-', '-', '-', '-', 'L', 'I', 'P', 'T', 'C' ,'F' }
  SHUFFLE: $terr
  FOR $y = 0 TO ((room.height - 3) / 2) {
    FOR $x = 0 TO ((room.width - 3) / 2) {
       TERRAIN:coord(($x * 2) + 1, ($y * 2) + 1), $terr[0]
    }
  }
}
  • Mirrored obstacles
LEVEL:"vlt-%04i"
FLAGS:rndvault
ROOM:"ordinary", random, random, random, random {
  IF [ room.width < 4 ] { BREAK }
  IF [ room.height < 4 ] { BREAK }
  $terr = terrain: { '-', '-', '-', '-', '-', 'L', 'I', 'P', 'T', 'C', 'F' }
  SHUFFLE: $terr
  LOOP [ 1d3 ] {
     $x = 1d6 - (1)
     IF [ $x >= room.width ] { $x = (room.width - (1)) }
     $y = 1d6 - (1)
     IF [ $y >= room.height ] { $y = (room.height - (1)) }
     TERRAIN:coord($x, $y), $terr[0]
     $mx = room.width - ($x) - (1)
     $my = room.height - ($y) - (1)
     TERRAIN:coord($mx, $my), $terr[0]
  }
}
  • Trap room
    • As the name suggests, this is a room filled with traps.
    • The number of traps will be equal to 1/4 the area of the room, plus up to an additional 1/3 of the room
    • The traps will be selected from the following list:

(pit/spiked pit), land mine, falling rock, (fire/cold trap), (trap door/hole), (arrow/dart)

  • Underground rivers
LEVEL:"vlt-%04i"
FLAGS:rndvault
GEOMETRY:random
MAP
  
  
ENDMAP
$terr = terrain: { ('L', lit), 'P' }
SHUFFLE:$terr
SPILL:random, $terr[0], north, 2d4
  • Trapped rust monster, disenchanter, or disintegrator
    • This is a 5x5 room with a 2x2 cage of iron bars in the center. In the cage is a random R
    • Other than polymorph, this is the only time that disintegrators can appear in UnNetHack (thankfully)
  • Fern Nursery
  • Ozymandias' Tomb
LEVEL:"vlt-%04i"
FLAGS:rndvault
GEOMETRY:random
MAP
---------
|.......|
|.......|
|.......|
|......\|
|.......|
|.......|
|.......|
---------
ENDMAP
REGION:(1,1,7,7),lit,"rndvault",filled { }
ENGRAVING: (6,4), burn, "Look on my works, ye mighty, and despair"
[10%]: ENGRAVING: (5,4), burn, "My name is Ozymandias, king of kings"
[50%]: TRAP: "hole", (3,2)
[80%]: TRAP: "hole", (5,3)
[30%]: TRAP: "hole", (3,6)
[75%]: TRAP: "web", (1,1)
[75%]: TRAP: "web", (1,6)
TRAP: "web", (7,6)
CONTAINER:"chest", (7,1), trapped { }
TRAP: "statue", (7,3)
TRAP: "statue", (7,7)
OBJECT:('`',"statue"),(7,3),montype:('d', "werejackal")
OBJECT:('`',"statue"),(7,1),montype:('@', "elvenking")
This page is a stub. Should you wish to do so, you can contribute by expanding this page.

A user has suggested improving this page or section as follows:

"Please improve this list. Also, right now the "filled" flag doesn't factor into these descriptions"