1 .TH DGN_COMP 6 "25 May 2015" NETHACK
11 .ND $NHDT-Date: 1524689548 2018/04/25 20:52:28 $
12 .NB $NHDT-Branch: NetHack-3.6.0 $
13 .NR $NHDT-Revision: 1.6 $
17 dgn_comp \- NetHack dungeon compiler
24 If no arguments are given, it reads standard input.
28 is a dungeon compiler for NetHack version 3.2 and higher. It
29 takes a description file as an argument and produces a dungeon "script"
30 that is to be loaded by NetHack at runtime.
32 The purpose of this tool is to provide NetHack administrators and
33 implementors with a convenient way to create a custom dungeon for the
34 game, without having to recompile the entire world.
52 is a letter for marking bones files, (
56 ) is the number of levels, and
58 is its percentage chance of being generated (if absent, 100% chance).
71 ALIGNMENT | LEVALIGN: [
81 gives the alignment of the dungeon/level (default is unaligned).
86 the dungeon entry point. The dungeon connection attaches at this
87 level of the given dungeon.
90 is negative, the entry level is calculated from the bottom of the
91 dungeon, with -1 being the last level.
92 If this line is not present in a dungeon description, the entry level
98 the prototypical name for dungeon level files in this dungeon.
99 For example, the PROTOFILE name for the dungeon
119 is a letter for marking bones files, (
123 ) is the location and
125 is the generation percentage, as above.
144 is a letter for marking bones files, (
150 is the generation percentage, as above, and
152 is the number of similar levels available to choose from.
170 is a letter for marking bones files,
172 is the name of a level defined previously, (
178 from the level being chained from, and
180 is the generation percentage.
199 is a letter for marking bones files,
201 is the name of a level defined previously, (
207 from the level being chained from,
209 is the generation percentage, and
211 is the number of similar levels available to choose from.
218 is the level type, (see DESCRIPTION, above). The
220 is used to override any pre-set value used to describe the entire dungeon,
245 is the name of the dungeon to branch to, and (
249 ) is the location of the branch.
250 The last two optional arguments are
251 the branch type and branch direction.
252 The type of a branch can be a two-way stair connection,
253 a one-way stair connection, or a magic portal.
254 A one-way stair is described by the types
258 which specify which stair direction is missing.
259 The default branch type is
261 The direction for a stair can be either up or down; direction is not
262 applicable to portals. The default direction is
288 is the name of the dungeon to branch to,
290 is the name of a previously defined
298 from the level being chained from.
299 The optional branch type and direction are the same as described above.
302 Each dungeon must have a unique
304 and each special level must have a
306 unique within its dungeon (letters may be reused in different dungeons).
309 has the special value "none", no bones files will be created for that
314 may be in the range of 1 to
322 may be in the range of -1 to
327 is -1 it will be replaced with the value (num_dunlevs(dungeon) - base)
328 during the load process (ie. from here to the end of the dungeon).
332 is 0 the level is located absolutely at
335 Branches don't have a probability. Dungeons do. If a dungeon fails
336 to be generated during load, all its levels and branches are skipped.
338 No level or branch may be chained from a level with a percentage generation
339 probability. This is to prevent non-resolution during the load.
340 In addition, no branch may be made from a dungeon with a percentage
341 generation probability for the same reason.
343 As a general rule using the dungeon compiler:
347 name associated with it
350 that file will be used.
352 If a special level is present, it will override the above rule and
353 the appropriate file will be loaded.
355 If neither of the above are present, the standard generator will
356 take over and make a "normal" level.
358 A level alignment, if present, will override
359 the alignment of the dungeon that it exists within.
362 Here is the current syntax of the dungeon compiler's "language":
368 # The dungeon description file for the "standard" original
371 DUNGEON: "The Dungeons of Doom" "D" (25, 5)
372 LEVEL: "rogue" "none" @ (15, 4)
373 LEVEL: "oracle" "none" @ (5, 7)
374 LEVEL: "bigroom" "B" @ (12, 3) 15
375 LEVEL: "medusa" "none" @ (20, 5)
376 CHAINLEVEL: "castle" "medusa" + (1, 4)
377 CHAINBRANCH: "Hell" "castle" + (0, 0) no_down
378 BRANCH: "The Astral Plane" @ (1, 0) no_down up
380 DUNGEON: "Hell" "H" (25, 5)
381 DESCRIPTION: mazelike
383 BRANCH: "Vlad's Tower" @ (13, 5) up
384 LEVEL: "wizard" "none" @ (15, 10)
385 LEVEL: "fakewiz" "A" @ (5, 5)
386 LEVEL: "fakewiz" "B" @ (10, 5)
387 LEVEL: "fakewiz" "C" @ (15, 5)
388 LEVEL: "fakewiz" "D" @ (20, 5)
389 LEVEL: "fakewiz" "E" @ (25, 5)
391 DUNGEON: "Vlad's Tower" "T" (3, 0)
393 DESCRIPTION: mazelike
396 DUNGEON: "The Astral Plane" "A" (1, 0)
397 DESCRIPTION: mazelike
403 Lines beginning with '#' are considered comments.
405 A special level must be explicitly aligned. The alignment of the dungeon
406 it is in only applies to non-special levels within that dungeon.
409 M. Stephenson (from the level compiler by Jean-Christophe Collet).
412 lev_comp(6), nethack(6)
417 This file is Copyright (C) \*(Na and was last modified \*(Nd (version
419 NetHack may be freely redistributed. See license for details.