1 .TH DGN_COMP 6 "12 Dec 1995"
4 dgn_comp \- NetHack dungeon compiler
11 If no arguments are given, it reads standard input.
15 is a dungeon compiler for NetHack version 3.2 and higher. It
16 takes a description file as an argument and produces a dungeon "script"
17 that is to be loaded by NetHack at runtime.
19 The purpose of this tool is to provide NetHack administrators and
20 implementors with a convenient way to create a custom dungeon for the
21 game, without having to recompile the entire world.
39 is a letter for marking bones files, (
43 ) is the number of levels, and
45 is its percentage chance of being generated (if absent, 100% chance).
58 ALIGNMENT | LEVALIGN: [
68 gives the alignment of the dungeon/level (default is unaligned).
73 the dungeon entry point. The dungeon connection attaches at this
74 level of the given dungeon.
77 is negative, the entry level is calculated from the bottom of the
78 dungeon, with -1 being the last level.
79 If this line is not present in a dungeon description, the entry level
85 the prototypical name for dungeon level files in this dungeon.
86 For example, the PROTOFILE name for the dungeon
106 is a letter for marking bones files, (
110 ) is the location and
112 is the generation percentage, as above.
131 is a letter for marking bones files, (
137 is the generation percentage, as above, and
139 is the number of similar levels available to choose from.
157 is a letter for marking bones files,
159 is the name of a level defined previously, (
165 from the level being chained from, and
167 is the generation percentage.
186 is a letter for marking bones files,
188 is the name of a level defined previously, (
194 from the level being chained from,
196 is the generation percentage, and
198 is the number of similar levels available to choose from.
205 is the level type, (see DESCRIPTION, above). The
207 is used to override any pre-set value used to describe the entire dungeon,
232 is the name of the dungeon to branch to, and (
236 ) is the location of the branch.
237 The last two optional arguments are
238 the branch type and branch direction.
239 The type of a branch can be a two-way stair connection,
240 a one-way stair connection, or a magic portal.
241 A one-way stair is described by the types
245 which specify which stair direction is missing.
246 The default branch type is
248 The direction for a stair can be either up or down; direction is not
249 applicable to portals. The default direction is
275 is the name of the dungeon to branch to,
277 is the name of a previously defined
285 from the level being chained from.
286 The optional branch type and direction are the same as described above.
289 Each dungeon must have a unique
291 and each special level must have a
293 unique within its dungeon (letters may be reused in different dungeons).
296 has the special value "none", no bones files will be created for that
301 may be in the range of 1 to
309 may be in the range of -1 to
314 is -1 it will be replaced with the value (num_dunlevs(dungeon) - base)
315 during the load process (ie. from here to the end of the dungeon).
319 is 0 the level is located absolutely at
322 Branches don't have a probability. Dungeons do. If a dungeon fails
323 to be generated during load, all its levels and branches are skipped.
325 No level or branch may be chained from a level with a percentage generation
326 probability. This is to prevent non-resolution during the load.
327 In addition, no branch may be made from a dungeon with a percentage
328 generation probability for the same reason.
330 As a general rule using the dungeon compiler:
334 name associated with it
337 that file will be used.
339 If a special level is present, it will override the above rule and
340 the appropriate file will be loaded.
342 If neither of the above are present, the standard generator will
343 take over and make a "normal" level.
345 A level alignment, if present, will override
346 the alignment of the dungeon that it exists within.
349 Here is the current syntax of the dungeon compiler's "language":
355 # The dungeon description file for the "standard" original
358 DUNGEON: "The Dungeons of Doom" "D" (25, 5)
359 LEVEL: "rogue" "none" @ (15, 4)
360 LEVEL: "oracle" "none" @ (5, 7)
361 LEVEL: "bigroom" "B" @ (12, 3) 15
362 LEVEL: "medusa" "none" @ (20, 5)
363 CHAINLEVEL: "castle" "medusa" + (1, 4)
364 CHAINBRANCH: "Hell" "castle" + (0, 0) no_down
365 BRANCH: "The Astral Plane" @ (1, 0) no_down up
367 DUNGEON: "Hell" "H" (25, 5)
368 DESCRIPTION: mazelike
370 BRANCH: "Vlad's Tower" @ (13, 5) up
371 LEVEL: "wizard" "none" @ (15, 10)
372 LEVEL: "fakewiz" "A" @ (5, 5)
373 LEVEL: "fakewiz" "B" @ (10, 5)
374 LEVEL: "fakewiz" "C" @ (15, 5)
375 LEVEL: "fakewiz" "D" @ (20, 5)
376 LEVEL: "fakewiz" "E" @ (25, 5)
378 DUNGEON: "Vlad's Tower" "T" (3, 0)
380 DESCRIPTION: mazelike
383 DUNGEON: "The Astral Plane" "A" (1, 0)
384 DESCRIPTION: mazelike
390 Lines beginning with '#' are considered comments.
392 A special level must be explicitly aligned. The alignment of the dungeon
393 it is in only applies to non-special levels within that dungeon.
396 M. Stephenson (from the level compiler by Jean-Christophe Collet).
399 lev_comp(6), nethack(6)