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

Remarkable, Incredible and Amazing nerdiness
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
Making SVG maps from icons based on coordinates
Example data file: https://campaignwiki.org/contrib/gridmapper-example.txt
https://campaignwiki.org/text-mapper
GitHub
https://github.com/kensanata/hex-mapping
There’s a git repository for the perl library version at the campaignwiki link,too. I should see if my generic shared hosting here can handle that sometime.
So you can run this in a browser:
https://mybinder.org/v2/gh/bluetyson/ADnD1e-Random-Dungeon-Generator/HEAD
Not tried it yet, but it will certainly make doing a character generator faster.
Python 2.7
Some more additions to basic dungeons, should be able to get rivers and chasms in corridors:- e.g. if blue Cri = river, Cbr = river with bridge across. https://github.com/bluetyson/ADnD1e-Random-Dungeon-Generator
| B | B | C | O | C | B | B |
| B | Cri | C | C | C | Cbr | B |
| C | Cri | C | Cbr | C | Cbr | C |
| C | Cri | C | C | C | Cbr | C |
| C | Cri | C | B | C | Cbr | C |
| C | Cri | C | B | C | Cbr | C |
| C | Cri | B | B | B | Cbr | C |
| C | B | B | B | B | B | C |
https://www.dragonsfoot.org/forums/viewtopic.php?t=51196
From many sources.
I did cluster analysis of them once, but not sure where that went to!
https://github.com/lisawindsong/DungeonCreator
I remember finding this a while ago now, but I have never tried it: – job for tomorrow.
It is Python 2.7.
Will add to my Random Dungeon generator github list.
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 |
| B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
| B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
| B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B |
| B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | 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 |
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"
https://alexschroeder.ch/wiki/Gridmapper

This is excellent – so you can create a map by typing, or by code, or via the interface – and save and download in multiple formats. Thanks very much Alex!