Textmapper with Gridmapper

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.

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

Monster Manual Experience Points

The AD&D Monster Manual didn’t list experience points. A spreadsheet has been compiled by Adrano Silverbow here https://www.dropbox.com/s/5sx6kswtjf5885a/Monster%20Manual%20XPs.ods?dl=0

From dragonsfoot https://www.dragonsfoot.org/forums/viewtopic.php?f=1&t=81048

Spiders

Dungeon looks a bit spidery, too.

DUNGEON
BBBBOBBBB
BBBBCBBBB
BBBBCBBBB
BBBBCBBBB
BBBBCBBBB
BBBBCBBBB
BCCCCBBBB
BBCR1BBBBB
BBwmR1R1R1mR1BB
BBBR1R1R1R1BB
BBBR1R1R1R1BB
BBCBCCCBB
BCBCBCBCB
CBCBBCBBC

Data: 1

{‘shape’: ‘R’, ‘size’: [4, 4], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 1}, ‘store’: ‘Chests’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}}, ‘exits’: 3, ‘exitlocations’: {1: ‘O’, 2: ‘L’, 3: ‘O’}, ‘exitdirections’: {1: ’45AB’, 2: ’45BA’, 3: ‘A’}}

Key: 1

treasure:{‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 1}, ‘store’: ‘Chests’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}

Wandering Monster: 0

{(-2, 8, -1): {‘level’: 3, ‘type’: ‘Spider-large’, ‘No’: 3, ‘XP’: 0}}

A fun random first level

If you go the wrong way at the entrance, hidden pit trap.

If you can find a way across a yawning chasm, there are monsters working down the end of a long dark passage – you might choose the right way and bonus easy platinum.

DUNGEON
BBBBBBBBBBCCHlCCBBBBBBBBBBBBBBBBB
BBBBBBBBBBCCHlCBCBBBBBBBBBBBBBBBB
BBBBBBBBBBCBBBBCOBBBBBBBBBBBBBB
BBBBBBBBBBCBBBBDptDBBBBBBBBBBBBB
BBBBBBBBBBCBBBBDDDBBBBBBBBBBBBB
BBBBBBBBBBCBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBCBBBBBBBBBBBBBBBBBBBB
BBBBBBBCCCCBBBBBBBBBBBBBBBBBBBB
BBBBBBBCBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBCBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBCBBBBBBBBBBBBBBBBBBBBBBB
CBBBBBBCBBBBBBBBBBBBBBBBBBBBBBB
CBCBBBBCBBBBBBBBBBBBBBBBBBBBBBB
CBCBCCCCBBBBBBBBBBBBBBBBBBBBBBB
CdCCBCCCBBBBBBBBBBBBBBBBBBBBBBBB
R4wmCCBCBCBBBBBBBBBBBBBBBBBBBBBBB
R4R4R4CCHbrCBCBBBBBBBBBBBBBBBBBBBBBBB
R4CCCDCDCBBBBBBBBBBBBBBBBBBBBBBB
R4R4ptR4R3wmR2R1R1BBBBBBBBBBBBBBBBBBBBBBB
R4R4R4R3R2R2R1R1BBBBBBBBBBBBBBBBBBBBBBB
R4R4R4R3R3R3R1R1BBBBBBBBBBBBBBBBBBBBBBB
BBBR3R3R3R1R1BBBBBBBBBBBBBBBBBBBBBBB
BBBR3R3R3R3BBBBBBBBBBBBBBBBBBBBBBBB
BBBR3R3R3R3BBBBBBBBBBBBBBBBBBBBBBBB
BBBBBCBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBCBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBCBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

Key: 1

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

Key: 2

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

Key: 3

{‘shape’: ‘R’, ‘size’: [4, 6], ‘water’: ‘N’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘R’, 2: ‘O’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’}}

Key: 4

{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {‘trap’: {‘new_coord’: (-15, 12, -1), ‘trap’: {‘type’: ‘secret door pit’, ‘chance’: 0.15, ‘fits’: ‘Y’, ‘abv’: ‘pt’, ‘chance_elf’: 0.25, ‘damage’: 1}, ‘secretdoor’: ‘N’}}, ‘exits’: 3, ‘exitlocations’: {1: ‘R’, 2: ‘S’, 3: ‘S’}, ‘exitdirections’: {1: ‘A’, 2: ’45AB’, 3: ‘A’}}

Key: 5

{‘shape’: ‘R’, ‘size’: [3, 3], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 3000, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Coffers’, ‘protection’: ‘hide’, ‘hide’: ‘Secret: In rubbish’}}, ‘exits’: 3, ‘exitlocations’: {1: ‘R’, 2: ‘O’, 3: ‘R’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’, 3: ‘A’}}

Key: 6

{‘shape’: ‘R’, ‘size’: [4, 4], ‘fromdoor’: ‘Y’, ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 2250, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Chests’, ‘protection’: ‘guard’, ‘guard’: ‘Darts: inside bottom up’}, ‘secret_door_dict’: {1: {(-4, 27, -3): ‘xmin’, (-5, 27, -3): {‘beyond’: ‘P’, ‘loc’: ‘xminloc’}}, 2: {(-4, 26, -3): ‘ymin’, (-4, 25, -3): {‘beyond’: ‘P’, ‘loc’: ‘yminloc’}}, 3: {(-3, 26, -3): ‘ymin’, (-3, 25, -3): {‘beyond’: ‘Room’, ‘loc’: ‘yminloc’}}, 4: {(-4, 28, -3): ‘ymax’, (-4, 29, -3): {‘beyond’: ‘A’, ‘loc’: ‘ymaxloc’}}, 5: {(-3, 28, -3): ‘ymax’, (-3, 29, -3): {‘beyond’: ‘P’, ‘loc’: ‘ymaxloc’}}, 6: {(-1, 28, -3): ‘ymax’, (-1, 29, -3): {‘beyond’: ‘P’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 6}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}

Key: 7

{‘shape’: ‘R’, ‘size’: [6, 6], ‘water’: ‘N’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(-4, 30, -3): ‘xmin’, (-5, 30, -3): {‘beyond’: ‘P’, ‘loc’: ‘xminloc’}}, 2: {(-4, 32, -3): ‘xmin’, (-5, 32, -3): {‘beyond’: ‘A’, ‘loc’: ‘xminloc’}}, 3: {(1, 31, -3): ‘xmax’}, 4: {(1, 32, -3): ‘xmax’, (2, 32, -3): {‘beyond’: ‘P’, ‘loc’: ‘xmaxloc’}}, 5: {(-3, 30, -3): ‘ymin’, (-3, 29, -3): {‘beyond’: ‘A’, ‘loc’: ‘yminloc’}}, 6: {(-2, 32, -3): ‘ymax’, (-2, 33, -3): {‘beyond’: ‘P’, ‘loc’: ‘ymaxloc’}}, 7: {(0, 32, -3): ‘ymax’, (0, 33, -3): {‘beyond’: ‘P’, ‘loc’: ‘ymaxloc’}}}, ‘secret_door_count’: 7}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}

Key: 8

{‘shape’: ‘R’, ‘size’: [3, 5], ‘contents’: {’empty’: ‘Y’}, ‘exits’: 2, ‘exitlocations’: {1: ‘O’, 2: ‘R’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’}}

Key: 9

{‘shape’: ‘R’, ‘size’: [3, 3], ‘contents’: {‘monster’: {‘level’: 2, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}, ‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 0, ‘electrum’: 0, ‘gold’: 1100, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Loose’, ‘protection’: ‘guard’, ‘guard’: ‘Contact poison: loot’}}, ‘exits’: 4, ‘exitlocations’: {1: ‘L’, 2: ‘O’, 3: ‘L’, 4: ‘L’}, ‘exitdirections’: {1: ‘A’, 2: ‘A’, 3: ’45BA’, 4: ‘A’}}

Key: 10

{‘shape’: ‘R’, ‘size’: [8, 9], ‘water’: ‘N’, ‘fancy_shape’: ‘H’, ‘contents’: {’empty’: ‘Y’}, ‘exits’: 1, ‘exitstype’: ‘door’, ‘exitlocations’: {1: ‘R’}, ‘exitdirections’: {1: ‘A’}}

Key: 11

{‘shape’: ‘R’, ‘size’: [4, 6], ‘contents’: {’empty’: ‘Y’, ‘secret_door_dict’: {1: {(3, 35, -4): ‘xmax’, (4, 35, -4): {‘beyond’: ‘Room’, ‘loc’: ‘xmaxloc’}}}, ‘secret_door_count’: 1}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}

Key: 12

{‘shape’: ‘R’, ‘size’: [3, 3], ‘contents’: {‘treasure’: {‘type’: {‘copper’: 0, ‘silver’: 5000, ‘electrum’: 0, ‘gold’: 0, ‘platinum’: 0, ‘gems’: 0, ‘jewellery’: 0, ‘magic’: 0}, ‘store’: ‘Metal Urns’, ‘protection’: ‘hide’, ‘hide’: ‘Magic: Invisibility’}, ‘secret_door_dict’: {}, ‘secret_door_count’: 0}, ‘exits’: 0, ‘secretdoors’: ‘check’, ‘exitlocations’: {}, ‘exitdirections’: {}}

Wandering Monster: 0

{(-12, 16, -1): {‘level’: 1, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}

Wandering Monster: 1

{(-12, 16, -1): {‘level’: 1, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}

Wandering Monster: 2

{(-15, 13, -1): {‘level’: 1, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}

Wandering Monster: 3

{(-15, 13, -1): {‘level’: 1, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}

Wandering Monster: 4

{(-3, 25, -4): {‘level’: 4, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}

Wandering Monster: 5

{(-3, 25, -4): {‘level’: 1, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}

Wandering Monster: 6

{(12, 37, -5): {‘level’: 2, ‘type’: ‘NA’, ‘No’: 0, ‘XP’: 0}}
%d bloggers like this: