I have started on this and only now and again for a few days, given ran out of holidays and had to go back to work a week or so ago.
However, it is doing the basics.
https://github.com/bluetyson/ADnD1e-Random-Dungeon-Generator
What it is not is something that generates a box image and fills it in a la donjon or others. It is a translation of the procedural tables. The TLDR version is it can do X number of rolls. If a stair/elevator or whatever goes down, it follows that and keeps going. If empty rooms have secret doors, it will fill this in recursively, but not follow any of those randomly in particular. The key output is being used for debugging, but will be turned into room descriptions. Rooms can ‘not fit’ and be chopped off, so the default size might not reflect the plot.
Definitely bugs here or there as just started, and some events are pretty rare so there will be plenty of oddball edge cases. Things I am aware on and working on eventually are here https://github.com/bluetyson/ADnD1e-Random-Dungeon-Generator/issues
e.g. no actual rolled monsters/treasure from DMG tables as yet. No Pools, that sort of thing.
Basic legend code is at the bottom
Here’s a level 1 and level 7 from a 200 ‘Rolls’ test. Level 7 being the one the players would want to get to.
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | C | st | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | C | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | D | C | D | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | D | D | C | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | O | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | C | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | C | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
C | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | C | C | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
Key: 1
{‘shape’: ‘R’, ‘size’: [10, 13], ‘water’: ‘S’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘R’, 2: ‘L’, 3: ‘O’, 4: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’, 3: ‘A’, 4: ‘A’}}Key: 2
{‘shape’: ‘R’, ‘size’: [3, 4], ‘fromdoor’: ‘Y’, ‘contents’: {‘monster’: {}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 4400, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Bloody Great Chests’, ‘protection’: ‘hide’, ‘hide’: ‘Secret room nearby’}}, ‘exits’: 1, ‘exitstype’: ‘door’, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}Key: 3
{‘shape’: ‘R’, ‘size’: [9, 12], ‘water’: ‘S’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(3, 6, -4): ‘xmin’, (2, 6, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(3, 9, -4): ‘xmin’, (2, 9, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 3: {(11, 0, -4): ‘xmax’, (12, 0, -4): {‘beyond’: ’45BA’, ‘loc’: ‘xmaxloc’}}, 4: {(11, 6, -4): ‘xmax’, (12, 6, -4): {‘beyond’: ‘A’, ‘loc’: ‘xmaxloc’}}, 5: {(11, 10, -4): ‘xmax’, (12, 10, -4): {‘beyond’: ’45BA’, ‘loc’: ‘xmaxloc’}}, 6: {(4, 0, -4): ‘ymin’, (4, -1, -4): {‘beyond’: ‘Room’, ‘loc’: ‘yminloc’}}, 7: {(6, 0, -4): ‘ymin’, (6, -1, -4): {‘beyond’: ‘Room’, ‘loc’: ‘yminloc’}}, 8: {(9, 0, -4): ‘ymin’, (9, -1, -4): {‘beyond’: ‘P’, ‘loc’: ‘yminloc’}}, 9: {(4, 10, -4): ‘ymax’, (4, 11, -4): {‘beyond’: ‘Room’, ‘loc’: ‘ymaxloc’}}, 10: {(8, 10, -4): ‘ymax’, (8, 11, -4): {‘beyond’: ‘P’, ‘loc’: ‘ymaxloc’}}, 11: {(9, 10, -4): ‘ymax’, (9, 11, -4): {‘beyond’: ‘A’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 11}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 4
{‘shape’: ‘R’, ‘size’: [1, 2], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(2, 7, -4): ‘xmin’, (1, 7, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(2, 7, -4): ‘ymax’, (2, 8, -4): {‘beyond’: ‘Room’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 2}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 5
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘L’, 2: ‘R’, 3: ‘O’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’, 3: ‘A’}}Key: 6
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘S’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’}}Key: 7
{‘shape’: ‘R’, ‘size’: [1, 1], ‘fromdoor’: ‘Y’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘O’, 2: ‘O’, 3: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45AB’, 3: ‘A’}}Key: 8
{‘shape’: ‘R’, ‘size’: [3, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘O’, 2: ‘L’, 3: ‘O’, 4: ‘O’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’, 3: ‘A’, 4: ‘A’}}Key: 9
{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {‘trap’: {}}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’}}Key: 10
{‘shape’: ‘R’, ‘size’: [2, 2], ‘contents’: {‘monster’: {}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 7, ‘magic’: 0}, ‘store’: ‘Stone Jars’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}}, ‘exits’: 1, ‘exitstype’: ‘door’, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}Key: 11
{‘shape’: ‘R’, ‘size’: [3, 5], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘O’}, ‘exitdirections’: {1: ‘A’}}Key: 12
{‘shape’: ‘R’, ‘size’: [3, 5], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘R’, 2: ‘S’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’}}Key: 13
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 700, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Coffers’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: Loose stone – in wall’}, ‘secret_door_dict’: {1: {(13, 3, -7): ‘xmin’, (12, 3, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(14, 4, -7): ‘xmax’, (15, 4, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xmaxloc’}}}, ‘secret_door_count’: 2}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 14
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}Key: 15
{‘shape’: ‘R’, ‘size’: [2, 2], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 8000, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Loose’, ‘protection’: ‘guard’, ‘guard’: ‘Poison needles: handle’}}, ‘exits’: 3, ‘exitlocations’: {1: ‘R’, 2: ‘R’, 3: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’, 3: ‘A’}}Key: 16
{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(14, 8, -7): ‘xmin’, (13, 8, -7): {‘beyond’: ’45BA’, ‘loc’: ‘xminloc’}}, 2: {(14, 6, -7): ‘ymin’, (14, 5, -7): {‘beyond’: ’45AB’, ‘loc’: ‘yminloc’}}}, ‘secret_door_count’: 2}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 17
{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘O’, 2: ‘L’, 3: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’, 3: ‘A’}}Key: 18
{‘shape’: ‘R’, ‘size’: [9, 13], ‘water’: ‘W’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘S’}, ‘exitdirections’: {1: ‘A’}}Key: 19
{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘O’, 2: ‘O’, 3: ‘L’, 4: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’, 3: ‘A’, 4: ’45AB’}}Key: 20
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {}, ‘secret_door_count’: 0}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 21
{‘shape’: ‘R’, ‘size’: [3, 4], ‘fromdoor’: ‘Y’, ‘contents’: {‘monster’: {}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 1925, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Stone Jars’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}, ‘secret_door_dict’: {1: {(0, 8, -7): ‘xmin’, (-1, 8, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(2, 8, -7): ‘xmax’, (3, 8, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xmaxloc’}}, 3: {(0, 8, -7): ‘ymin’, (0, 7, -7): {‘beyond’: ‘A’, ‘loc’: ‘yminloc’}}, 4: {(0, 11, -7): ‘ymax’, (0, 12, -7): {‘beyond’: ’45AB’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 4}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 22
{‘shape’: ‘R’, ‘size’: [1, 2], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘R’, 2: ‘L’, 3: ‘L’, 4: ‘S’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’, 3: ‘A’, 4: ’45BA’}}Key: 23
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ’45AB’}}Key: 24
{‘shape’: ‘R’, ‘size’: [1, 2], ‘fromdoor’: ‘Y’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘S’, 2: ‘O’, 3: ‘S’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’, 3: ‘A’}}Key: 25
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘R’, 2: ‘L’, 3: ‘R’}, ‘exitdirections’: {1: ‘A’, 2: ’45AB’, 3: ‘A’}}Key: 26
{‘shape’: ‘R’, ‘size’: [28, 39], ‘water’: ‘N’, ‘fancy_shape’: ‘H’, ‘contents’: {‘monster’: {}}, ‘exits’: 2, ‘exitlocations’: {1: ‘S’, 2: ‘L’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’}}Key: 27
{‘shape’: ‘R’, ‘size’: [2, 2], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 8000, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Metal Urns’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: Inside non-storage item’}}, ‘exits’: 1, ‘exitlocations’: {1: ‘O’}, ‘exitdirections’: {1: ’45BA’}}Key: 28
{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {‘level’: {}}, ‘exits’: 4, ‘exitlocations’: {1: ‘O’, 2: ‘O’, 3: ‘L’, 4: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’, 3: ‘A’, 4: ‘A’}}Key: 29
{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’}}B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | st | C | C | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | R9 | R8 | R8 | R8 | pd | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | C | C | C | R8 | R8 | R8 | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | R9 | R8 | R8 | R8 | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | R9 | R9 | C | C | C | C | C | C | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | C | B | C | R10m | C | B | C | B | C | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | C | C | C | R10 | R10j | C | B | C | B | C | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | C | C | C | pd | B | C | wm | C | B | C | B | B | B | C | B | C | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | C | B | B | C | C | C | C | R19 | R19 | wm | B | R14 | R13 | C | C | B | C | C | C | C | C | C | C | B | B | B | B | B | B | B | B | |
B | B | C | B | B | B | C | C | C | C | B | C | B | td | R19 | R19 | R19 | R19 | R14 | R13p | R13 | R12 | C | B | B | B | R11 | R11 | R11 | B | B | B | B | B | B | B | B | B | |
B | B | B | C | B | B | C | C | C | C | C | C | C | R20 | R19 | R19 | R19 | R19 | R17 | R17 | R12 | C | C | B | B | B | R11 | R11 | R11 | B | B | B | B | B | B | B | B | B | |
B | B | B | B | C | B | C | C | C | C | C | wm | R24 | R20 | R19 | C | C | C | R17 | R17 | R16 | C | C | C | C | C | C | R11 | R11 | R11 | B | B | B | B | B | B | B | B | B |
B | B | C | C | C | R22 | R21 | R23 | wm | td | R24 | B | R19 | R19 | R19 | R19 | R17 | C | R12 | R12 | R12 | C | B | C | R11 | R11 | R11 | B | B | B | B | B | B | B | B | B | |||
B | B | C | C | C | R22 | R21 | R21 | R21m | R23 | R23 | R25 | C | B | R19 | R19 | R19 | R19 | C | R18 | R18 | R12 | R12 | R12 | C | B | B | R11 | R11 | R11 | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | R21 | R21 | R21 | R23 | R23 | B | C | B | B | B | C | C | B | R18 | R18 | R18 | R18 | R18 | C | B | B | B | C | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | R21 | R21 | B | B | B | C | B | B | B | B | C | B | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | C | B | B | B | B | B | B | B | B | B | B | |
B | B | B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | C | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | C | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | C | B | B | B | B | B | B | B | B | B | B | B | B | B | B | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | R18 | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
Key: 1
{‘shape’: ‘R’, ‘size’: [10, 13], ‘water’: ‘S’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘R’, 2: ‘L’, 3: ‘O’, 4: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’, 3: ‘A’, 4: ‘A’}}Key: 2
{‘shape’: ‘R’, ‘size’: [3, 4], ‘fromdoor’: ‘Y’, ‘contents’: {‘monster’: {}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 4400, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Bloody Great Chests’, ‘protection’: ‘hide’, ‘hide’: ‘Secret room nearby’}}, ‘exits’: 1, ‘exitstype’: ‘door’, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}Key: 3
{‘shape’: ‘R’, ‘size’: [9, 12], ‘water’: ‘S’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(3, 6, -4): ‘xmin’, (2, 6, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(3, 9, -4): ‘xmin’, (2, 9, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 3: {(11, 0, -4): ‘xmax’, (12, 0, -4): {‘beyond’: ’45BA’, ‘loc’: ‘xmaxloc’}}, 4: {(11, 6, -4): ‘xmax’, (12, 6, -4): {‘beyond’: ‘A’, ‘loc’: ‘xmaxloc’}}, 5: {(11, 10, -4): ‘xmax’, (12, 10, -4): {‘beyond’: ’45BA’, ‘loc’: ‘xmaxloc’}}, 6: {(4, 0, -4): ‘ymin’, (4, -1, -4): {‘beyond’: ‘Room’, ‘loc’: ‘yminloc’}}, 7: {(6, 0, -4): ‘ymin’, (6, -1, -4): {‘beyond’: ‘Room’, ‘loc’: ‘yminloc’}}, 8: {(9, 0, -4): ‘ymin’, (9, -1, -4): {‘beyond’: ‘P’, ‘loc’: ‘yminloc’}}, 9: {(4, 10, -4): ‘ymax’, (4, 11, -4): {‘beyond’: ‘Room’, ‘loc’: ‘ymaxloc’}}, 10: {(8, 10, -4): ‘ymax’, (8, 11, -4): {‘beyond’: ‘P’, ‘loc’: ‘ymaxloc’}}, 11: {(9, 10, -4): ‘ymax’, (9, 11, -4): {‘beyond’: ‘A’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 11}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 4
{‘shape’: ‘R’, ‘size’: [1, 2], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(2, 7, -4): ‘xmin’, (1, 7, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(2, 7, -4): ‘ymax’, (2, 8, -4): {‘beyond’: ‘Room’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 2}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 5
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘L’, 2: ‘R’, 3: ‘O’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’, 3: ‘A’}}Key: 6
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘S’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’}}Key: 7
{‘shape’: ‘R’, ‘size’: [1, 1], ‘fromdoor’: ‘Y’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘O’, 2: ‘O’, 3: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45AB’, 3: ‘A’}}Key: 8
{‘shape’: ‘R’, ‘size’: [3, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘O’, 2: ‘L’, 3: ‘O’, 4: ‘O’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’, 3: ‘A’, 4: ‘A’}}Key: 9
{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {‘trap’: {}}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’}}Key: 10
{‘shape’: ‘R’, ‘size’: [2, 2], ‘contents’: {‘monster’: {}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 7, ‘magic’: 0}, ‘store’: ‘Stone Jars’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}}, ‘exits’: 1, ‘exitstype’: ‘door’, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}Key: 11
{‘shape’: ‘R’, ‘size’: [3, 5], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘O’}, ‘exitdirections’: {1: ‘A’}}Key: 12
{‘shape’: ‘R’, ‘size’: [3, 5], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘R’, 2: ‘S’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’}}Key: 13
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 700, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Coffers’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: Loose stone – in wall’}, ‘secret_door_dict’: {1: {(13, 3, -7): ‘xmin’, (12, 3, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(14, 4, -7): ‘xmax’, (15, 4, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xmaxloc’}}}, ‘secret_door_count’: 2}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 14
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}Key: 15
{‘shape’: ‘R’, ‘size’: [2, 2], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 8000, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Loose’, ‘protection’: ‘guard’, ‘guard’: ‘Poison needles: handle’}}, ‘exits’: 3, ‘exitlocations’: {1: ‘R’, 2: ‘R’, 3: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’, 3: ‘A’}}Key: 16
{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(14, 8, -7): ‘xmin’, (13, 8, -7): {‘beyond’: ’45BA’, ‘loc’: ‘xminloc’}}, 2: {(14, 6, -7): ‘ymin’, (14, 5, -7): {‘beyond’: ’45AB’, ‘loc’: ‘yminloc’}}}, ‘secret_door_count’: 2}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 17
{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘O’, 2: ‘L’, 3: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’, 3: ‘A’}}Key: 18
{‘shape’: ‘R’, ‘size’: [9, 13], ‘water’: ‘W’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘S’}, ‘exitdirections’: {1: ‘A’}}Key: 19
{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘O’, 2: ‘O’, 3: ‘L’, 4: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’, 3: ‘A’, 4: ’45AB’}}Key: 20
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {}, ‘secret_door_count’: 0}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 21
{‘shape’: ‘R’, ‘size’: [3, 4], ‘fromdoor’: ‘Y’, ‘contents’: {‘monster’: {}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 1925, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Stone Jars’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}, ‘secret_door_dict’: {1: {(0, 8, -7): ‘xmin’, (-1, 8, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xminloc’}}, 2: {(2, 8, -7): ‘xmax’, (3, 8, -7): {‘beyond’: ‘Room’, ‘loc’: ‘xmaxloc’}}, 3: {(0, 8, -7): ‘ymin’, (0, 7, -7): {‘beyond’: ‘A’, ‘loc’: ‘yminloc’}}, 4: {(0, 11, -7): ‘ymax’, (0, 12, -7): {‘beyond’: ’45AB’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 4}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}Key: 22
{‘shape’: ‘R’, ‘size’: [1, 2], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 4, ‘exitlocations’: {1: ‘R’, 2: ‘L’, 3: ‘L’, 4: ‘S’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’, 3: ‘A’, 4: ’45BA’}}Key: 23
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ’45AB’}}Key: 24
{‘shape’: ‘R’, ‘size’: [1, 2], ‘fromdoor’: ‘Y’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘S’, 2: ‘O’, 3: ‘S’}, ‘exitdirections’: {1: ’45AB’, 2: ‘A’, 3: ‘A’}}Key: 25
{‘shape’: ‘R’, ‘size’: [2, 3], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 3, ‘exitlocations’: {1: ‘R’, 2: ‘L’, 3: ‘R’}, ‘exitdirections’: {1: ‘A’, 2: ’45AB’, 3: ‘A’}}Key: 26
{‘shape’: ‘R’, ‘size’: [28, 39], ‘water’: ‘N’, ‘fancy_shape’: ‘H’, ‘contents’: {‘monster’: {}}, ‘exits’: 2, ‘exitlocations’: {1: ‘S’, 2: ‘L’}, ‘exitdirections’: {1: ’45BA’, 2: ‘A’}}Key: 27
{‘shape’: ‘R’, ‘size’: [2, 2], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 8000, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Metal Urns’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: Inside non-storage item’}}, ‘exits’: 1, ‘exitlocations’: {1: ‘O’}, ‘exitdirections’: {1: ’45BA’}}Key: 28
{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {‘level’: {}}, ‘exits’: 4, ‘exitlocations’: {1: ‘O’, 2: ‘O’, 3: ‘L’, 4: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’, 3: ‘A’, 4: ‘A’}}Key: 29
{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ’45BA’}}legend_dict = {}
legend_dict['O'] = "Outside Entrance"
legend_dict['C'] = "Corridor/Passage"
legend_dict['R'] = "Chamber/Room"
legend_dict['D'] = "Dead End"
legend_dict['d'] = "door"
legend_dict[':'] = "direction of Door"
legend_dict['wm'] = "Wandering Monster"
legend_dict['sd'] = "Secret Door"
legend_dict['st'] = "Stairs"
legend_dict['ch'] = "Chute"
legend_dict['cm'] = "Chimney"
legend_dict['td'] = "Trapdoor"
legend_dict['pi'] = "Pit Trap"
legend_dict['pd'] = "Pit Trap: Secret Door"
legend_dict['ps'] = "Pit Trap: Spikes"
legend_dict['pc'] = "Pit Trap: Crushing Walls"
legend_dict['el'] = "Elevator Trap"
legend_dict['ar'] = "Arrow Trap"
legend_dict['sp'] = "Spear Trap"
legend_dict['df'] = "Door Falls Trap"
legend_dict['sf'] = "Stone Falls Trap"
legend_dict['gs'] = "Gas Trap"
legend_dict['bw'] = "Blocked Wall Trap"
legend_dict['ol'] = "Oil Trap"
legend_dict['m'] = "Monster"
legend_dict['t'] = "Treasure"
legend_dict['p'] = "Pool"
legend_dict['c'] = "Treasure: Copper"
legend_dict['s'] = "Treasure: Silver"
legend_dict['e'] = "Treasure: Electrum"
legend_dict['g'] = "Treasure: Gold"
legend_dict['p'] = "Treasure: Platinum"
legend_dict['G'] = "Treasure: Gems"
legend_dict['j'] = "Treasure: Jewellery"
legend_dict['M'] = "Treasure: Magic"
Ok, looks like that messes up the page as too big, so if you need the categories etc., go to another post.
e.g.
https://cosmicheroes.space/blog/index.php/2023/01/16/dungeon23-011-ruby-base-level-11-key-01-2-2-2-2-2-2/
An illustrative example, without having to bother hosting it elsewhere. Ever get a later one I really like, can add it as pages.