Difference between revisions of "Monster Generation"
From DRL Wiki
Omega Tyrant (Talk | contribs) (Big update for 0.10) |
Omega Tyrant (Talk | contribs) (Noted more of the many exceptions to monster spawning depth ranges) |
||
| Line 17: | Line 17: | ||
|style="text-align: left"|[[Former human]] | |style="text-align: left"|[[Former human]] | ||
|0 | |0 | ||
| − | |12 | + | |12{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups and certain level types.|?}} |
|10 | |10 | ||
|1 | |1 | ||
| Line 23: | Line 23: | ||
|style="text-align: left"|[[Former sergeant]] | |style="text-align: left"|[[Former sergeant]] | ||
|2 | |2 | ||
| − | |15 | + | |15{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups and certain level types.|?}} |
|10 | |10 | ||
|2 | |2 | ||
| Line 29: | Line 29: | ||
|style="text-align: left"|[[Former captain]] | |style="text-align: left"|[[Former captain]] | ||
|5 | |5 | ||
| − | |15 | + | |15{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups and certain level types.|?}} |
|10 | |10 | ||
|3 | |3 | ||
| Line 41: | Line 41: | ||
|style="text-align: left"|[[Demon]] | |style="text-align: left"|[[Demon]] | ||
|4 | |4 | ||
| − | |20 | + | |20{{Rollover|*|Can continue to spawn up to floor 60 in caves.|?}} |
|6 | |6 | ||
|4 | |4 | ||
|- | |- | ||
|style="text-align: left"|[[Lost soul]] | |style="text-align: left"|[[Lost soul]] | ||
| − | |6 | + | |6{{Rollover|*|Can spawn earlier than this below HMP in caves.|?}} |
| − | |16 | + | |16{{Rollover|*|Can continue to spawn indefinitely after this point in caves and from Pain Elementals.|?}} |
|10 | |10 | ||
|3 | |3 | ||
| Line 53: | Line 53: | ||
|style="text-align: left"|[[Hell knight]] | |style="text-align: left"|[[Hell knight]] | ||
|9 | |9 | ||
| − | |15 | + | |15{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups and certain level types.|?}} |
|6 | |6 | ||
|6 | |6 | ||
|- | |- | ||
|style="text-align: left"|[[Cacodemon]] | |style="text-align: left"|[[Cacodemon]] | ||
| − | |10 | + | |10{{Rollover|*|Can spawn in vaults as early as floor 1 on UV/N!, and can spawn on floor 3 in caves on N!.|?}} |
| − | |50 | + | |50{{Rollover|*|Can continue to spawn up to floor 100 in caves, and indefinitely after this point in vaults and monster groups.|?}} |
|6 | |6 | ||
|6 | |6 | ||
| Line 65: | Line 65: | ||
|style="text-align: left"|[[Pain elemental]] | |style="text-align: left"|[[Pain elemental]] | ||
|10 | |10 | ||
| − | |40 | + | |40{{Rollover|*|Can continue to spawn indefinitely after this point in caves and monster groups.|?}} |
|4 | |4 | ||
|6 | |6 | ||
| Line 71: | Line 71: | ||
|style="text-align: left"|[[Former commando]] | |style="text-align: left"|[[Former commando]] | ||
|12 | |12 | ||
| − | |21 | + | |21{{Rollover|*|Can continue to spawn after this point in certain level types.|?}} |
|6 | |6 | ||
|7 | |7 | ||
| Line 82: | Line 82: | ||
|- | |- | ||
|style="text-align: left"|[[Arachnotron]] | |style="text-align: left"|[[Arachnotron]] | ||
| − | |13 | + | |13{{Rollover|*|Can spawn as soon as floor 6 in caves on N!|?}} |
| − | |50 | + | |50{{Rollover|*|Can continue to spawn up to floor 80 in caves, and indefinitely in monster groups.|?}} |
|4 | |4 | ||
|9 | |9 | ||
| Line 107: | Line 107: | ||
|style="text-align: left"|[[Nightmare imp]] | |style="text-align: left"|[[Nightmare imp]] | ||
|30{{Rollover|*|Can spawn earlier than this in vaults on UV/N!.|?}} | |30{{Rollover|*|Can spawn earlier than this in vaults on UV/N!.|?}} | ||
| − | |60 | + | |60{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups.|?}} |
|8 | |8 | ||
|6 | |6 | ||
| Line 119: | Line 119: | ||
|style="text-align: left"|[[Elite former human]] | |style="text-align: left"|[[Elite former human]] | ||
|40 | |40 | ||
| − | |80 | + | |80{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups.|?}} |
|4 | |4 | ||
|6 | |6 | ||
| Line 155: | Line 155: | ||
|style="text-align: left"|[[Elite former sergeant]] | |style="text-align: left"|[[Elite former sergeant]] | ||
|60 | |60 | ||
| − | |90 | + | |90{{Rollover|*|Can continue to spawn indefinitely after this point in monster groups.|?}} |
|3 | |3 | ||
|8 | |8 | ||
Latest revision as of 04:26, 25 March 2026
| Technical | |
| This article discusses technical aspects of DoomRL and will be of limited interest to most players. | |
Each monster has a minimum dlevel, a maximum dlevel, a weight, and a danger rating. Minimum level and maximum level determine whether the monster can appear on a floor at all. Weight indicates relative likelihood of appearing. Danger indicates (inversely) how many can be generated.
The displayed minimum level is valid for ITYTD and HNTR, and it is lower at higher difficulties (-3 for HMP and -6 for UV/N!), which means that tougher monsters start appearing earlier in the game. Other values are unaffected by difficulty.
For all enemies that can normally spawn, here are the values.
| Monster Generation Parameters | ||||
| Monster | Minimum | Maximum | Weight | Danger |
| Former human | 0 | 12* | 10 | 1 |
| Former sergeant | 2 | 15* | 10 | 2 |
| Former captain | 5 | 15* | 10 | 3 |
| Imp | 0 | 17 | 8 | 2 |
| Demon | 4 | 20* | 6 | 4 |
| Lost soul | 6* | 16* | 10 | 3 |
| Hell knight | 9 | 15* | 6 | 6 |
| Cacodemon | 10* | 50* | 6 | 6 |
| Pain elemental | 10 | 40* | 4 | 6 |
| Former commando | 12 | 21* | 6 | 7 |
| Baron of hell | 12 | N/A | 6 | 10 |
| Arachnotron | 13* | 50* | 4 | 9 |
| Revenant | 13 | N/A | 5 | 12 |
| Mancubus | 15 | N/A | 7 | 12 |
| Arch-vile | 16 | N/A | 4 | 14 |
| Nightmare imp | 30* | 60* | 8 | 6 |
| Nightmare soul | 30* | N/A | 0 | 4 |
| Elite former human | 40 | 80* | 4 | 6 |
| Nightmare demon | 40* | N/A | 6 | 8 |
| Bruiser brother | 40* | N/A | 6 | 14 |
| Nightmare knight | 41 | N/A | 6 | 12 |
| Nightmare arachnotron | 50* | N/A | 4 | 12 |
| Nightmare cacodemon | 51* | N/A | 6 | 10 |
| Elite former sergeant | 60 | 90* | 3 | 8 |
| Shambler | 60* | N/A | 3 | 14 |
| Nightmare revenant | 60 | N/A | 6 | 15 |
| Elite former captain | 70 | N/A | 3 | 10 |
| Nightmare elemental | 70* | N/A | 3 | 16 |
| Lava elemental | 70 | N/A | 1 | 16 |
| Cyberdemon | 70* | N/A | 1 | 30 |
| Nightmare mancubus | 75 | N/A | 4 | 15 |
| Elite former commando | 80* | N/A | 2 | 14 |
| Agony elemental | 80* | N/A | 1 | 20 |
| Nightmare arch-vile | 80 | N/A | 3 | 20 |
Additionally, the are monster groups. Monsters groups have their own minimum and maximum levels and weights that are used instead of the values for the the individual monsters. The effective danger of a group is the sum of the dangers of its monsters.
| Monster Groups | |||
| Monsters | Minimum | Maximum | Weight |
| 1 × former sergeant, 2-6 × former human | 7 | 16 | 10 |
| 5-8 × imp | 5 | 8 | 10 |
| 1 × hell knight, 2-6 × imp | 9 | 12 | 10 |
| 4-9 × demon | 10 | 22 | 4 |
| 1 × baron of hell, 4-9 × imp | 13 | 21 | 10 |
| 1 × pain elemental, 3-8 × lost soul | 13 | 25 | 8 |
| 1 × former commando, 2-6 × former sergeant | 15 | 21 | 10 |
| 1 × baron of hell, 2-4 × hell knight | 20 | N/A | 4 |
| 3-6 × arachnotron | 20 | N/A | 3 |
| 2 × arch-vile, 4 × former captain, 4 × former sergeant, 3-6 × former human | 20 | N/A | 2 |
| 2 × baron of hell, 2-3 × former captain, 2-3 × former sergeant | 20 | N/A | 5 |
| 2 × arch-vile, 2-5 × mancubus | 20 | N/A | 4 |
| 2 × arch-vile, 2-5 × revenant | 20 | N/A | 4 |
| 2 × arch-vile, 3-9 × baron of hell | 25 | N/A | 4 |
| 2 × arch-vile, 2-8 × former captain, 2-3 × mancubus | 25 | N/A | 2 |
The following monster groups will only appear in deeper levels of Angel of 100 and Archangel of 666:
| A100-exclusive Monster Groups | |||
| Monsters | Minimum | Maximum | Weight |
| 4-9 × nightmare soul | 30 | 59 | 4 |
| 2 × baron of hell, 2-6 × nightmare imp | 30 | 59 | 4 |
| 2 × pain elemental, 2-5 × cacodemon | 30 | N/A | 4 |
| 3-5 × nightmare demon | 35 | 49 | 4 |
| 4-8 × nightmare demon | 50 | N/A | 4 |
| 2 × nightmare knight, 4-8 × nightmare imp | 60 | N/A | 4 |
| 2 × nightmare elemental, 4-6 × nightmare soul | 60 | N/A | 4 |
| 2 × nightmare knight, 2-3 × elite former captain, 2-3 × elite former sergeant | 70 | N/A | 3 |
| 1 × elite former commando, 2-3 × elite former captain, 2-3 × elite former sergeant | 70 | N/A | 2 |
| 3-6 × nightmare arachnotron | 70 | N/A | 2 |
| 1-3 × lava elemental, 2-3 × shambler | 75 | N/A | 1 |
| 1 × cyberdemon, 4-8 × baron of hell | 80 | N/A | 2 |
| 1 × agony elemental, 3-8 × nightmare cacodemon | 85 | N/A | 2 |
| 1 × nightmare arch-vile, 2-3 × elite former captain, 2-3 × elite former sergeant, 3-6 × elite former human | 90 | N/A | 2 |
| 1 × cyberdemon, 3-6 × bruiser brother | 90 | N/A | 1 |
| 2-4 × nightmare mancubus | 95 | 149 | 2 |
| 2-4 × nightmare revenant | 95 | 149 | 2 |
| 2 × nightmare arch-vile, 2-4 × nightmare mancubus, 2-4 × nightmare revenant | 100 | N/A | 2 |
| 2 × nightmare arch-vile, 2-5 × nightmare mancubus | 150 | N/A | 2 |
| 2 × nightmare arch-vile, 2-5 × nightmare revenant | 150 | N/A | 2 |
Notice that monster groups are the only way for some enemies to appear on very deep levels.
Each level is given a total danger rating depending on depth and difficulty level. Monster placement usually proceeds as follows: while the total danger of enemies placed so far is less than the danger rating of the level, pick a new monster or monster group and add it (entirely) to the level. Picking a monster or group is done using the weights as relative probabilities for all the monsters and groups with a valid dlevel range. When a monster group is picked, all its ranges are resolved uniformly and independently. Each monster is added to a random empty tile; for monster groups, each monster is added separately.
The total danger level is calculated from dlevel as follows:
| Difficulty | Danger |
| I'm Too Young to Die | 6 + 2.2 × dlevel |
| Hey, Not Too Rough | 0.6 × sqrt(500 × dlevel) = 13.4 × sqrt(dlevel) |
| Hurt Me Plenty | 20 × sqrt(dlevel) |
| Ultra-Violence | 32 × sqrt(dlevel) |
| Nightmare! | 40 × sqrt(devel) |
In addition to these monsters, certain level features (e.g. vaults) may cause additional monsters to spawn on the level without counting against this limit.