Tuesday, May 25, 2021

Stock Thousands of Unique* Hexes Instantly** With Google Sheets



If you’re experienced with Excel or Google Sheets, this will be painfully obviously endearingly quaint. If you aren’t, you’re in luck, for I have delved the hoary depths of the Google search function and consorted with the occulted knowledge of YouTube tutorial makers to gain the understanding necessary to formulate this rather simple and straightforward method of stocking hexes. All so you don’t have to. 

Humble preamble: This method isn’t meant to replace the more considered planning and preparation that goes into creating a hexcrawl campaign. It’s just meant to make the whole endeavor a little easier. 

The method involves coming up with a list of items you want to stock your hexes with (settlements, lairs, all that good stuff) and then randomly assigning them to the hexes. It’s the same principle as rolling on a random table for each hex, but the benefit of using a cold soulless machine over the tactile analog pleasure of dice and paper is that you can play around with a much bigger list of items and the whole process goes a lot faster. Score one for the robot uprising. 

Step one: open a fresh Google Sheet. This might work on Excel but I don’t know; I can’t try it because the Office plan I didn’t know I had has expired and now I have this shitty little icon sitting on my computer that I keep forgetting to get rid of. Anyway, in Column A write out your list of hex numbers. If you separate hex rows and columns with a period, adjust the decimal place one to the left or else every hex column that ends with zero will be cut off. Frustrating, but we persist.

I forgot to move the decimal place over in my example images. C'est la vie.

Step two: In column E, make a big list of all the things you want on your hex map. Don't be too specific—this is the random table that the formula is going to be rolling on, so you should account for the possibility that each result could appear many times. That being said, I find it helpful to include multiple versions of the same thing to get one level of detail deeper. This also helps for weighting the table, which I will get into more later. 

So for instance, instead of just having "ruins" four times on the list, I included four different types of ruins: Lizardman, Giant, Cyclopean, and Weird (the useful catch-all for any type of ruin I want to include that isn’t covered by the other categories).

Do this with fortresses, settlements, castles, temples, towers, dungeons, monster lairs, and/or whatever else you want your players to come across over the course of their wondrous adventures. Add in the basic stuff, add in setting-specific stuff, maybe even add in things you don’t have a clear idea of yet and so you can come up with the details later. Consider including placeholder entries like "Special" so you can add in more elaborate and boutique stuff later, if that suits your fancy. 

All told, I ended up making 60 different hex items. In order for the below formula to work, you will need 60 items as well.



Step three: Click on the first cell in column B, and then paste this into the formula bar (next to the fx symbol):

=INDEX($E$1:$E$120,RANDBETWEEN(1,120))


Edit: try =INDEX($E$1:$E$120;RANDBETWEEN(1;120)) if the above formula doesn't work

 

(If you're not using 60 items, your numbers may need to change)


After that, select the cell, click on the little blue box in the bottom right corner, and drag it down to fill in the rest of the cells in column B.

INDEX returns the contents of other cells, and RANDBETWEEN chooses a random number between two parameters. In this case, the formula is choosing a random cell in column E between 1 and 120 and displaying the result in the cells of column B. 



Make sure you include the dollar signs or else the function scale will shift up one with every cell, meaning it would go from E1:E120 to E2:E121 and so on. Obviously since you’re copy/pasting this isn’t a concern but this took me way too long to figure out and I want to put it here to make sure NO ONE gets confused by this EVER AGAIN. 

Notice the range goes to 120 when I only have 60 hex items. I want some hexes to be empty, so that the map isn’t too cluttered and so I can fill in more stuff later if need be. A matter of personal preference.

Because of the inscrutable workings of Google Sheets every time you update the spreadsheet, all the cells produced by the formula will change. There's probably some way to prevent this but what I do is just copy all the cells and then in a new sheet go Paste special -> Paste values only.

Repeat step three in column C if you want the option for more items per hex, which you should, because one thing per hex can get BORING. 

Play around with the numbers and proportions. If you want a sparser, more terra incognita hexcrawl, expand the function ranges to make more empty hexes and have a low number of settlements compared to everything else.  

Don’t take weighing the table too seriously, unless you’re really into ensuring there is a realistic proportion of castles to settlements or whatever. If you have way more ideas for temples than you do fortresses but you want roughly the same number to be on the map, just condense multiple ideas into the same cell. 

This tool is just a jumping off point—play around with it until it spits out something you can work with and then go from there. 



Next steps: Adjust, reflavor, and season to taste. 

Look at your hex map and your list of semistocked hexes. Get a feel for the ecosystem, what the dialogue between the points of interest and the natural geography may be. Why might things be located where they are. 

Take Hex 25.19 in the example image. Within it is both a wizard's tower and a mutant's lair. Perhaps the mutant was the victim of the wizard's foul experimenting, but he escaped the tower and now plots his revenge. Or maybe the wizard and the mutant our allies, and the mutant has agreed to defend the wizard's tower in exchange for magical boons.  

This is where you do that DM thing where you iterate on idea fragments until they are fleshed out to your liking. Knowing just the content of a hex, its terrain type, and the nearby locations should develop in you a strong enough creative foundation that can you expand on easily, or even spontaneously at the table if need be. 

The same principle of dungeon stocking applies to working out your hex map: you’re obviously allowed to change results if you feel like it would make a better campaign, but also let the weird idiosyncrasies fuel your imagination. Why are there five castles in this tiny stretch of jungle? What the hell is a haunted mansion doing in the middle of a desert? You tell me. Figuring this stuff out and coming upon these “discoveries” is one of the real joys of being a DM, I-M-O.

And that’s just about all there is to it. 


*some work will be required to distinguish hexes stocked with the same contents

**"instantly" does not include the time it takes to set up the material required for the method to function.



Monday, May 3, 2021

Three monsters from the Last Planet

These are some creatures I made for my homebrew Last Planet setting. There isn't really any "natural" fauna in the Last Planet, instead all creatures are some flavor of mutant or the product of bio-engineering. Originally I had intended to come up with an elaborate generator to make a bunch of unique creatures so the players would never run into the same type of twice, but I scrapped that idea when I realized it's actually just more fun to make up new monsters or use ones I find on blogs, modules, etc. Random generation is great for inspiration, There's nothing that can really be gained by having a bunch of mass-produced monsters with formulaic stats and abilities. Even if they all are distinct—all equally unique, all equally forgettable. So the lesson here I guess is that small-batch artisanally crafted monsters are superior to randomly generated ones. Who knew. 


Acridon

HD: 12 AC: 3 [16] Att: 2 x slam (1d8) or Acid Spray.

Move: 120’ (40’) Morale: 8 No. Appearing: 2d8

Slam: +4 to hit against human-sized creatures or smaller. If both attacks hit, the target is knocked to the ground. 

Acid Spray: 1-in-4 chance each round to spray of acid out of it's trunk. Deals 2d6 damage in a 30' line, save vs. breath for half. The target's AC is increased/reduced by 1 if the save is failed and they're wearing armor. 

Hide: Acridon hide is is an incredibly tough and can be used to make acid-proof hazmat suits. Getting a suit made costs 60 sp and requires an expert the likes of which are usually only found in big cities. 

Acridons are tuskless mastodons with bright orange fur and big, emerald insect eyes that bulge out from their face. Their trunk is tipped with many fine holes like a sprinkler hose. Acridons congregate around acid lakes and radiation zones, and are known to make long pilgrimages to new regions when the specific kinds of flora and fauna they feed on becomes too scarce. They can spray highly corrosive acid from their trunks, which they use to partially digest their food before they consume it as well as for self-defense. 


Bolt Beetles 

HD: 1-1 AC: 7 [12] Att: None

Move: 40' (10') flying, or 180’ (60’) flying (see special). 

Morale: 9 No. Appearing: 1d10 (2d12 if a nest is encountered)


Charge: A bolt beetle can spend its round flying up to 60' in a straight line while radiating volatile energy. Every creature in its path must save vs. magic wand or else take 1d6 damage.

Note: if you're playing with theater of the mind combat, a bolt beetle can hit 1d4 PCs per turn. If players specify that they position the PCs so that they are not standing in-line with one another, the number of PCs a bolt beetle can hit drops to 1d2 and the PCs must move at effectively half speed in order to account for maintaining their positioning.

Bolt beetles are the size of your fist, with knife-like wings and a horn shaped like a lightning bolt. Their shell is so iridescent that it's hard to tell what color it is, but close up they range from vibrant green to a deep electric blue. Their elytra is made of a special material that stores the kinetic energy expelled by their wing beats. They often fly together in lazy patterns, but when they are agitated or need to defend the nest, they can release this energy to rocket forward and drive off the invaders. When they charge, they emit a bright green light and shoot out sparks like an angry firecracker. 


Hyperlion (pronounced like "Hyperion," but you can call it hyper-lion if you want. I'm not your dad.)

HD:AC: 6 [13] Att: 2 x claw (1d8), 1 bite (2d6) or 1 x horn beam (2d10 exploding)

Move: 150’ (50’) Morale: 9 No. Appearing: 1d4


Horn beam: If the beam deals more than 25 damage and the target survives, they immediately gain 2,000 xp and the undying respect of the hyperlion. This can only happen to a PC once in their lifetime.

Mutant hunter: Hyperlions attack mutated humans on sight, and will always prioritize mutants in combat.

Hyperlions were originally created to serve as weapons in the ancient war between the Veiled Kingdom and the Men of the Crystal Pyramids. Both sides fell in the conflict, but the hyperlions remain. A hyperlion is a mighty creature so thoroughly suffused with power that their blood runs white-hot and when they roar it sounds like the beat drop in a late-2000s dubstep track. They have platinum-blue fur, a wispy fuschia mane, and a spiraling unicorn horn that crackles with energy. From their horn they can fire a crimson beam of energy that carries with it part of the hyperlion's very life-force. The beam is remarkably dangerous, but it is said that some who have been stricken by it and survived have incorporated part of the hyperlion's essence into their own.