Advanced Dungeons and Dragons Monster Clustering

A few years ago I looked at this, have found it again, so here’s a start.

Not, many mess categories as you know, but here’s a plot from 2 that will fit on a screen.

Vermin and plants, some animals and common humanoids and your garden variety monstrous humanoids when you lump it at this very joined together level.

Kmodes method, just have to find where I put that part.

https://github.com/bluetyson/ADnD-Monster-Cluster-Analysis/blob/main/ADnD-Monster-Clustering-Basic.ipynb

Skeleagle

Skelleagle

One of the strange monsters haunting the Mokuy skies. Likes the high places, but anywhere with bones to snack on.

Something like skeleton stats and eagle flight. Turn as skeletons.

AC,7,MV,12, Fl 30,HD,1-1,Thac0,20,3,NA,DM,1d4/1d4/1d4,SA,Special,SD,Special,SZ,M (4-6'),ML,,XP,100

1/2 damage from piercing weapons, etc.

Dungeon23 – 028 Ruby Base Level 24 Key 4

Level 24 is the Captain’s quarters;

GM: At Key4 is the dirigible captain’s chambers.

Dirigible captain's chambers, reading room
Dirigible captain’s chambers, reading room

Dungeon23 – 027 Ruby Base Level 24 Key 3

Level 24 is the Captain’s quarters;

GM: At Key3 is the ship captain’s chambers.

Dungeon23 – 026 Ruby Base Level 24 Key 2

Level 24 is the Captain’s quarters;

GM: At Key 2 is the lift.

Dungeon23 – 025 Ruby Base Level 24 Key 1

Level 24 is the Captain’s quarters;

GM: At Key 1is the submarine captain’s chambers.

The 1000 Dungeon Project

Thanks to the AD&D Random Dungeon Generator I wrote https://github.com/bluetyson/ADnD1e-Random-Dungeon-Generator, I can parallelise, so doing this only takes less than a minute.

The basic random walk theory these talk is ‘Ahead’ is the y positive direction and always follow exits – e.g. stairs down (and can go up sometimes too).

The first 1000 dungeons I have done with 10 Periodic Checks as the DMG table calls them. e.g. a roll on the main table.

Here’s a summary :-

https://docs.google.com/spreadsheets/d/1kpZhtAO4cLtyLnh6bCCRVdigOL8jbjAFJ6CFyEZ2cX8/edit?usp=sharing

Wandering Monster Totals
Wandering Monster XP histogram
Monster numbers
Monster XP histogram
Rooms

Here you can have the situation if you find an empy room it can have secret doors – beyond which are more rooms, which can have secret doors if empty – I have it so it follows that stack down, then goes back – e.g. Rooms are the interesting thing.

So with 10 checks, a couple of rooms is likely.

In fact, here are the medians for this batch of 1000:

monster_xp                            0.0
wm_xp                                 0.0
monster_total                         0.0
wm_total                              0.0
traps                                 1.0
rooms                                 2.0
total_treasure_copper                 0.0
total_treasure_silver                 0.0
total_treasure_electrum               0.0
total_treasure_gold                   0.0
total_treasure_platinum               0.0
total_treasure_gems                   0.0
total_treasure_jewellery              0.0
total_treasure_magic                  0.0
total_treasure_monster_copper         0.0
total_treasure_monster_silver         0.0
total_treasure_monster_electrum       0.0
total_treasure_monster_gold           0.0
total_treasure_monster_platinum       0.0
total_treasure_monster_gems           0.0
total_treasure_monster_jewellery      0.0
total_treasure_monster_magic          0.0
wm_total_treasure_copper              0.0
wm_total_treasure_silver              0.0
wm_total_treasure_electrum            0.0
wm_total_treasure_gold                0.0
wm_total_treasure_platinum            0.0
wm_total_treasure_gems                0.0
wm_total_treasure_jewellery           0.0
wm_total_treasure_magic               0.0
Coins                                11.0
Gems                                  0.0
Jewellery                             0.0
Magic                                 0.0
Total Gold Equivalent                21.5
x                                    13.0
y                                    16.0
z                                     1.0

Median room size is 13 by 16 – y dimensions are likely to be bigger.

So if we call a median room an exemplar, let’s have a look:

Selecting all the 13 by 16 the medians:
monster_xp                            0.0
wm_xp                                19.0
monster_total                         0.0
wm_total                              0.5
traps                                 0.0
rooms                                 3.5
total_treasure_copper                 0.0
total_treasure_silver                 0.0
total_treasure_electrum               0.0
total_treasure_gold                   0.0
total_treasure_platinum               0.0
total_treasure_gems                   0.0
total_treasure_jewellery              0.0
total_treasure_magic                  0.0
total_treasure_monster_copper         0.0
total_treasure_monster_silver         0.0
total_treasure_monster_electrum       0.0
total_treasure_monster_gold           0.0
total_treasure_monster_platinum       0.0
total_treasure_monster_gems           0.0
total_treasure_monster_jewellery      0.0
total_treasure_monster_magic          0.0
wm_total_treasure_copper              0.0
wm_total_treasure_silver              0.0
wm_total_treasure_electrum            0.0
wm_total_treasure_gold                0.0
wm_total_treasure_platinum            0.0
wm_total_treasure_gems                0.0
wm_total_treasure_jewellery           0.0
wm_total_treasure_magic               0.0
Coins                                60.0
Gems                                  0.0
Jewellery                             0.0
Magic                                 0.0
Total Gold Equivalent                60.0
x                                    13.0
y                                    16.0
z                                     2.0
Periodic Checks                      10.0

So these are therefore likely to have an exit to level 2 – [z = 2]

The distribution of area of the Dungeons:

Dungeon area, x by y by z

Here are the individual stats for the Dungeons:

https://docs.google.com/spreadsheets/d/1rbTE5-d4ju9nuQC57Dt8rCNPvuNbW3VR-JA7iAMqyvc/edit?usp=sharing

AD&D Character code

This is in Lua, project looks like it is for making add-ons for Fantasy Grounds?

https://github.com/CelestianGC/AD-D-Core-1e/blob/master/scripts/data_common_adnd1e.lua

AD&D 1e Random Dungeon Generator Binder

So you can run this in a browser:

https://mybinder.org/v2/gh/bluetyson/ADnD1e-Random-Dungeon-Generator/HEAD

  • click the above to fire up a web container environment that lets you run this in your browser
  • you get jupyterlab, just click on the terminal link at the lower left and then type ‘python dungeon.py 1’ [or however many rolls as you like] and the files created will also be in the main directory, one for each dungeon level. 

AD&D 1e Random Dungeon Generator Version 0.3

I just update to this and i just generated a short dungeon. For reference, this is ’10 rolls’

See the GitHub README for a bit more details.

https://github.com/bluetyson/ADnD1e-Random-Dungeon-Generator

DUNGEON
BBBBBCCHlCOCCCBB
BBCCCCCHlCBBBBBB
BBCCCCwmCBBBBBBB
BBBBBCBCBBBBBB
BBBBBCCCCBBBBB
BBBBBCCCwmBBBBB
BBBBCBBBBBBBBB
BBBCBBBBBBBBBB
BBCBBBBBBBBBBB
BBCBBBBBBBBBBB
BBCBBBBBBBBBBB
BBCBBBBBBBBBBB
BBCBBBBBBBBBBB
BBCBBBBBBBBBBB
BDsdCDBBBBBBBBBB
R2R2R1R1R1R1R1R1R1R1R1BBB
R2R2R1R1R1R1R1R1R1R1R1BBB
R2R2R1R1R1R1R1R1R1R1R1BBB
R2R2R1R1R1R1R1R1R1R1R1CCHlC
BBR1mR1R1R1R1R1R1R1R1CCHlC
BBR1R1R1R1R1R1R1R1R1BBB
BBR1R1R1R1R1R1R1R1R1BBB
BBR1R1R1R1R1R1R1R1R1BBB
BBR1R1R1R1R1R1R1R1R1BBB
BBR1R1R1R1gR1R1R1R1R1BBB
BBR1R1R1R1R1R1R1R1R1BBB
BBR1R1R1R1R1R1R1R1R1BBB
BBR1R1R1R1R1R1R1R1R1BBB
BBBBBBBBBBCBBB
BBBBBBBBBBCBBB
BBBBBBBBBBCBBB

Data: 1

{‘shape’: ‘R’, ‘size’: [9, 13], ‘water’: ‘N’, ‘fancy_shape’: ‘H’, ‘fromdoor’: ‘Y’, ‘contents’: {‘monster’: {‘level’: 1, ‘type’: ‘Orc’, ‘No’: 8, ‘XP’: 14, ‘lair’: ‘35%’, ‘treasure_individual’: [‘L’], ‘treasure_lair’: [‘C’, ‘O’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘S’]}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 275, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘gems_list’: [], ‘jewellery_list’: [], ‘magic_list’: [], ‘magic_xp’: [], ‘magic_values’: [], ‘store’: ‘Loose’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: Loose stone – in wall’}}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘R’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’}}

Key: 1

monster:{‘level’: 1, ‘type’: ‘Orc’, ‘No’: 8, ‘XP’: 14, ‘lair’: ‘35%’, ‘treasure_individual’: [‘L’], ‘treasure_lair’: [‘C’, ‘O’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘Q’, ‘S’]}
LairTry:32 from 35 is in lair: True
Monster Lair Treasure:
{‘copper’: 10000, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 6, ‘jewellery’: 0, ‘magic’: 0}
{‘gems’: [100, 1000, 60.0, 100, 200, 20], ‘jewellery’: [], ‘magic’: [], ‘magic_list’: [], ‘magic_xp’: [], ‘magic_values’: []}

treasure:{‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 275, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘gems_list’: [], ‘jewellery_list’: [], ‘magic_list’: [], ‘magic_xp’: [], ‘magic_values’: [], ‘store’: ‘Loose’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: Loose stone – in wall’}

Data: 2

{‘shape’: ‘R’, ‘size’: [2, 4], ‘fromdoor’: ‘Y’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘R’, 2: ‘R’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’}}

Key: 2

Empty

Wandering Monster: 0

{(-3, 2, -1): {‘level’: 1, ‘type’: [‘Character’, {1: {‘class’: ‘FIGHTER’, ‘level’: 1, ‘race’: ‘Human’, ‘multi’: ‘N’, ‘magic_items’: []}, 2: {‘class’: ‘FIGHTER’, ‘level’: 1, ‘race’: ‘Human’, ‘multi’: ‘N’, ‘magic_items’: []}, 3: {‘class’: ‘FIGHTER’, ‘level’: 1, ‘race’: ‘Gnome’, ‘multi’: ‘Y’, ‘multi_no’: 2, ‘magic_items’: []}, 4: {‘class’: ‘FIGHTER’, ‘level’: 1, ‘race’: ‘Dwarf’, ‘multi’: ‘N’, ‘magic_items’: []}, 5: {‘class’: ‘MAGIC-USER’, ‘level’: 1, ‘race’: ‘Half-elf’, ‘multi’: ‘Y’, ‘multi_no’: 2, ‘magic_items’: []}, 6: {‘class’: ‘man-at-arms’}, 7: {‘class’: ‘woman-at-arms’}, 8: {‘class’: ‘woman-at-arms’}, 9: {‘class’: ‘woman-at-arms’}}], ‘No’: 9, ‘XP’: 0, ‘lair’: ‘0%’, ‘treasure_individual’: [], ‘treasure_lair’: []}}
XP:0

Wandering Monster: 1

{(0, 5, -1): {‘level’: 1, ‘type’: ‘Zombie’, ‘No’: 2, ‘XP’: 38, ‘lair’: ‘0%’, ‘treasure_individual’: [], ‘treasure_lair’: []}}
XP:76

Monster Total XP:112

Monster Total Treasure:{‘copper’: 10000, ‘silver’: 10000, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 6, ‘jewellery’: 0, ‘magic’: 0}

Monster Total Valuations:{‘gems’: [100, 1000, 60.0, 100, 200, 20, 100, 1000, 60.0, 100, 200, 20], ‘jewellery’: [], ‘magic’: [], ‘magic_xp’: [], ‘magic_values’: [], ‘magic_list’: []}

Wandering Monster Total XP:76

Wandering Monster Total Treasure:{‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}

Wandering Monster Subtable:[‘human-character’, ‘monster’]

Room Total Treasure:{‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 275, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}

Room Total Gems:0

Room Total Jewellery:0

Room Total Magic:0

Total Treasure: {‘copper’: 10000, ‘silver’: 10000, ‘electrum’: 0, ‘gold’: 275, ‘platinum’: 0, ‘gems’: 6, ‘jewellery’: 0, ‘magic’: 0}

Coins: 1375.0
Gems: 2960.0
Jewellery: 0
Magic: 0
Total Gold Equivalent: 4335.0
%d bloggers like this: