Witch horns

(Here's a thing I wrote up a while back which doesn't have any connection to any larger project, except as a tangent from some lore-theorizing about the power sources of D&D classes. I just went with the term "witch" instead of "warlock" because it's obviously cooler.)

Witches have horns, as a general rule. Part of the initial transformation to witch status is the growth of a single horn on some part of the subject's body (usually the head, but not always). They vary quite a bit in size and shape, but color, texture, and a few other qualities will typically be uniform among witches of the same patron (or even type of patron). They grow more horns as they gain power, with new horns typically appearing on the head if the first horn was on the head, or growing absolutely anywhere if the first horn was not on the head. Previous horns might migrate and reshape a bit to accommodate new ones. Asymmetry is the norm, though.

It's commonly believed that horns are the source of a witch's power. This is totally untrue. They aren't inert, though: Witch horns are markers and beacons, broadcasting the witch's location (and possibly other particulars) to their patron at all times, and announcing their patron's identity to other supernatural beings. Removing a witch's horns doesn't particularly harm the witch, but their patron won't be happy with the witch or the one doing the removing.

Witch horns continue to broadcast their signal for some time after removal. The patron may or may not realize that an amputation has occurred, making it theoretically possible to fool them as to their witch's location, or even allow someone else to masquerade as the witch. Witch horns are also pretty much guaranteed to get the attention of nearby supernatural beings, for good or ill.

Lost horns grow back once the witch gains enough power to grow a new horn (meaning that multiple horns will grow at once), and may return in a new location.

Rogue witches typically remove all their horns immediately. Gaining power is dangerous for them, since in that time between the regrowth and re-removal of horns, their patrons know where they are.

A witch's power resides all throughout their body, but mostly in their heart and blood. It is possible to absorb some power by drinking a witch's blood, but it's not very healthy for someone who's not also a witch. However, the beneficial effect is much more dramatic (if less controlled) for non-witches. The same is true of consuming a witch's heart, but to an even greater degree.


Scrambled spell names

Way back in 2017, when text-generating algorithms were still goofy fun, Janelle Shane fed a neural net a whole pile of D&D spell names, and got it to generate stuff like "Hold Mouse" and "Mind Blark". I wanted to get in on that action, so I pasted together my own spell list and threw it into some online text scrambler. The results weren't as funny as Janelle's spells, but instead seemed like completely legit, usable stuff!

Anyway, I'm going to try writing some of them up with actual mechanics. I'll do it 5e-style, since that's what I've been playing most recently, but I'm not going to bother detailing any material components or assigning the spells to classes. I honestly find writing in the 5e house style kind of excruciating, so let's see how long this takes me!

Banishing Weapon

Level 3 Conjuration

Casting Time: Bonus action
Range: Touch
Components: V, S
Duration: Concentration, up to 1 minute

You imbue a weapon with power over summoned and extraplanar creatures. Until the spell ends, creatures that are not native to the local plane of existence are vulnerable to damage done by this weapon. If it isn't already a magic weapon, it becomes one for the duration.

If a summoned and extraplanar creature is reduced to 0 hit points by a weapon under the effects of this spell, or is touched with such a weapon while the creature is at 0 hit points, the creature is banished to its home plane, and cannot revisit the plane from which it was banished for a year and a day.

Destructive Exhaustion

Level 2 Necromancy

Casting Time: Action
Range:
60 feet
Components: V, S
Duration: Concentration, up to 1 minute

You curse a creature with failing stamina. Until the spell ends, every time the target takes an action, it must make a Constitution saving throw. On a failed save, the creature suffers one level of exhaustion.

Horrid Person

Level 3 Illusion

Casting Time: Action
Range: 90 feet
Components: V, S, M
Duration: Instantaneous

You manifest an illusory horror in an unoccupied space that you can see within range, and designate any number of creatures you can see as protected from its influence. It appears as a shrouded, humanoid being of surpassing repugnance—possibly undead or diseased—and it uses the Illusory Horror stat block.

Illusory Horror

Medium Construct


Armor Class: 12
Hit Points: caster's HP at casting
Speed: 40 ft., climb 40 ft.


STR DEX CON INT WIS CHA
8 (-1) 14 (+2) 10 (+0) 1 (-5) 10 (+0) 10 (+0)

Condition Immunities: charmed, exhaustion, frightened, paralyzed, petrified, poisoned
Senses: passive Perception 10
Languages:
Challenge: none (0 XP)


Traits

Ephemeral. If the horror is reduced to 0 hit points, it completely ceases to exist, and frightened conditions caused by it end immediately.

Illusory Movement. The horror ignores difficult terrain and doesn't trigger traps.

Revulsion Aura. Any creature that starts its turn within 60 feet of the horror must make a Wisdom saving throw vs. the caster's spell save DC. On a failed save, the creature is frightened until the start of its next turn. On a successful save, the target becomes immune to the horror's Revulsion Aura.

Actions

Repellant Touch. The horror touches a creature within 5 feet. The target must make a Dexterity saving throw vs. the caster's spell save DC. On a failed save, the target suffers disadvantage on Wisdom saving throws against effects that would cause the frightened condition for 1 minute, and loses any immunity to the horror's Revulsion Aura gained by saving against it.

Reactions

Hideous Agony. When the horror takes damage, creatures within 60 feet of it with the frightened condition become paralyzed for 1 minute, or until their frightened condition ends.

You automatically succeed on all saving throws against the horror's abilities. Creatures you designated as protected when you cast the spell save against its abilities with advantage.

The horror shares your initiative count, but it takes its turn immediately after yours. Its movements are determined randomly each round by the following table.

d20 Movement
1–10 Move towards the nearest creature it can see other than you or a protected creature.
11 Move 2d4 × 5 ft. north.
12 Move 2d4 × 5 ft. northeast.
13 Move 2d4 × 5 ft. east.
14 Move 2d4 × 5 ft. southeast.
15 Move 2d4 × 5 ft. south.
16 Move 2d4 × 5 ft. southwest.
17 Move 2d4 × 5 ft. west.
18 Move 2d4 × 5 ft. northwest.
19–20 Caper, shudder, writhe, or convulse grotesquely in place.

If the horror ends its turn within 5 feet of a creature other than you or any creature you designated as protected, it will use its Repellant Touch on it.

If it's not destroyed, it will eventually wander off and cause havoc somewhere else.

Phase Hand

Level 2 Transmutation

Casting Time: Bonus action
Range: Self
Components: V, S
Duration: Concentration, up to 1 minute

One of your hands shifts partially into the Ethereal Plane, and can interact with creatures and objects on that plane, while passing effortlessly through objects on your current plane of existence. Additionally, it can temporarily convey this state to small objects, allowing you to—for example—unlatch a door from outside, steal coins from a pouch without opening it, or ignore a target's armor when making unarmed attacks against it.

Rainbow Smite

Level 1 Evocation

Casting Time: Bonus action
Range: Self
Components: V
Duration: Concentration, up to 1 minute

A melee weapon you wield is enveloped in coruscating rainbow light. The first time you hit with that weapon during this spell's duration, the attack deals an extra 2d8 damage to the target. Choose one of the d8s. The number rolled on that die determines the type of the extra damage and the additional effect of the attack, as shown below.

d8 Damage Type and Additional Effect
1 Acid. Target must succeed on a Constitution saving throw or be blinded until the end of your next turn.
2 Cold. Target's speed is reduced by 10 feet until the start of your next turn.
3 Fire. Target is set on fire, and will suffer 1d8 fire damage at the start of your next turn unless the target or a creature within 5 feet of it uses an action to put out the flames, or if some other effect douses the flames (such as the target being submerged in water).
4 Force. Target must succeed on a Strength saving throw or be pushed 30 feet in a random direction.
5 Lightning. Target can't take reactions until the end of your next turn.
6 Poison. Target must succeed on a Constitution saving throw or be poisoned until the end of your next turn.
7 Psychic. Target must succeed on a Wisdom saving throw or be charmed by you until the end of your next turn.
8 Thunder. Target must succeed on a Constitution saving throw or be deafened and knocked prone.

At Higher Levels. When you cast this spell using a spell slot of 2nd level or higher, each target takes 1d6 extra damage of the type rolled for each slot level above 1st.

Repel Guardians

Level 4 Enchantment

Casting Time: Action
Range: 120 feet
Components: V, S, M
Duration: Concentration, up to 10 minutes

Each creature in a 30-foot-radius sphere centered on a point of your choosing must succeed on a Wisdom saving throw or become disgusted and horrified by any creature, object, or place they have been commanded, hired, programmed, or enchanted to guard, protect, or imprison. This spell has no effect on creatures who serve as guardians only out of personal choice.

An affected creature must take the Dash action and move away from the object of its guardianship by the safest available route on each of its turns. If the creature is unable to move further from its charge and still has line of sight to it, the creature can use its action to make a Wisdom saving throw. On a successful save, the spell ends for that creature.

Spell Sanctum

Level 5 Transmutation

Casting Time: 24 hours
Range: Touch
Components: V, S, M (worth at least 1,000 gp, which the spell consumes)
Duration: Until dispelled

You magically prepare your location, dedicating it as an amplifier for your spells. The chosen area must fit into a 100-foot cube of space, and can't overlap with anyone else's spell sanctum.

While within your spell sanctum, you gain the following benefits.

You can only have one spell sanctum at a time, and creating a new one dispels your previous spell sanctum.

Spike Kill

Level 3 Conjuration

Casting Time: Action
Range: Self
Components: V, S, M
Duration: Instantaneous

A series of vaguely organic spines erupts from the ground in front of you, preceding in a direction you choose and covering a 100-foot-long 5-foot-wide line. Each creature in the line must make a Dexterity saving throw. A creature takes 8d6 piercing damage on a failed save, or half as much damage on a successful one. The affected area becomes difficult terrain, and can provide half cover to Small or smaller creatures.

At Higher Levels. When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for each slot level above 3rd.

Summon Vestment

Level 4 Conjuration

Casting Time: Bonus action
Range: Self
Components: V
Duration: Instantaneous

You summon onto your person an outfit that you have worn for at least an hour in the past day from a location within 1 mile. Your current outfit is simultaneously teleported to the summoned outfit's previous location. "Outfit" in this case comprises clothing, armor, jewelry, masks, wigs, and worn containers no larger than belt pouches, as well as the contents of pockets and such. It doesn't include makeup, backpacks, weapons, hairstyles, or any item that is carried rather than worn, or which extends more than five feet from the body.

Results

Well, that did take longer than I'd have liked. That 5e style is demanding, even when you crib from other works. And I'm not sure about my balance—it's hard to rationalize Drawmij's instant summons as it exists on the books, so balancing summon vestment against it is a bit complicated. My horrid person and rainbow smite are definitely long and complicated by 5e standards.

Still, it was a fun experiment! I've still got a whole pile of spells I want to try writing up-maybe about 20 or so-so this is probably the first in a series.


Dig Site Incident (One Monster, Five Rooms)

The folks over at the Garamondia and Nothic's Eye RPG blogs came up with a cool monster concept generator (Monster-Making d666), and then used it for this simple challenge: "write up a quick dungeon with d2 monsters in it, and d4+1 rooms". At least one other blogger took up the challenge, so here are the 1d2 Monsters and 1d4+1 Rooms dungeons of which I am currently aware.

Anyway, this looks like loads of fun, so I'll give it a try.

Background

Four months ago, a team of scholars, wizards, laborers, and bodyguards from the Lyceum showed up in the remote village of Graywallow and paid the Inskle family a sack of coin for the use of their neglected back forty for the year. They then proceed to tear the rented land—and some of the neighboring fields—setting up temporary accommodations and staging for an ambitious, magically assisted excavation.

The project—lead by one Professor Olstokken—sought to unearth the sunken ruins of an ancient civilization known as the "Tshale Valley culture". Historical research led them to this site, and preliminary divinations confirmed the presence of artificial structures deep below the ground. Olstokken's people bored a shaft into the Inskle farm, and eventually hit a buried rooftop. Opening the structure, they found a vast hall of crumbling greenish stone. They widened and reinforced the pit, set up a pair of winch-driven elevators, and began to explore half-buried Tshale city.

They found some remains from the debatably human inhabitants, countless artifacts of daily life, and even a trove of mysterious magical—if largely nonfunctional—objects. When they uncovered a whole magical room, Olstokken could read enough of the remaining magic to be certain it was a large-scale teleportation device. Gripped by the hope that it might lead her to another Tshale site, she bought the Inskles' oldest sheep and had her assistants empty its veins into the chamber's sacrifice bowl, feeding power into the sleeping system.

The professor took all the precautions she could manage under the circumstances, intending only to revitalize the device enough to make its enchantments clearer, more decipherable. There was no way she could have known the stone-insulated depths below the disc still held enough power to open a gate, or that it wasn't enough to make a connection to any other Tshale planar well. Instead, the ragged end of the failed conduit scraped into some between place, and sucked a hapless alien being into that ruined city.

In its panic, the White Mandala killed Olstokken and her assistants and bodyguards first. Then it blundered through the rest of the site, smashing things and people as it went, sometimes by accident and sometimes on purpose. It tried to fly up the shaft, but got tangled in the chains and fell back into the ruins. It's been down there for two days, and both the Lyceum and the people of Graywallow are wondering what happened.

The dig site

1A: Shaft

The shaft leading to the dig site is about 100' deep and 20' in diameter. The first 10' are sheathed in rusty steel, and the remaining 90' bore through bare, maroon-colored rock. Two powerful, mine-style elevators were built (hastily) into the shaft: One 5' × 10' platform for people, and one 10' × 15' platform for freight.

The smaller elevator is at the surface, but its gear assembly is damaged, as if a huge force yanked the chains which move it. Its counterweight is still attached, and rests on the stone floor far below. The mechanism is repairable by a competent engineer, if they're willing to suspend themselves over an uncanny pit of doom for an hour or so.

The larger elevator is in working order, but the platform is 30' down the shaft, and its locking mechanism is engaged. It can't be raised or lowered from the surface unless someone goes down to the platform and flips a switch. Its massive counterweight hangs, threateningly, 30' over the bottom of the pit.

Either elevator—if it's in working order—can be raised or lowered from the surface with 30 minutes of exhausting effort by two people or a beast of burden, or a full hour by one person. A significant magical motive force could do it in five minutes. Neither elevator can be moved from the bottom, because those mechanisms were smashed by the White Mandala. They would take days of labor and replacement parts to fix.

1B: Great hall

This is a huge, partially collapsed underground construction. It runs hundreds of feet to the east and west, and is about 60 feet wide, but much of that distance is obstructed by stone pillars, wooden supports added by the research team, collapsed areas, and the wreckage of assorted temporary structures. The vaulted ceiling is about 50' high in the middle and 40' at the edges. The ruin is mostly of greenish stone, ornate and baroque to the point of convolution, and crumbling into a layer of gravel.

There are seven corpses of Lyceum scholars and laborers, each horribly broken by tremendous blunt force. One of these hangs 30 feet in the air, transfixed improbably by an abstract decorative protrusion on an ancient pillar.

Around mid-day, the middle of the great hall is lit by sunlight via the shaft. Otherwise, this area is pitch black.

2: Collapsed wing

The northern side of the great hall opened up into a multitude of side passages which, as they were excavated, were repurposed as subsurface barracks and latrines for team members while they worked below ground. This is also where most of the Lyceum's people took shelter when the White Mandala arrived. Unfortunately, the creature's frantic lashing and flailing collapsed the supports and entryways here, trapping four laborers, three scholars, and one guard inside. Ten others were crushed or suffocated.

The survivors are starving, severely dehydrated, and half mad with terror. They're likely to hear any adventurers moving around nearby, and will scream desperately for help. They won't be eager to talk about what happened or even who they are until they're safe on the surface, or at least freed from the collapse.

It would take 1d6 × 10 minutes of labor with tools (or 1d12 × 10) for someone in the great hall to save each person. Up to three people can work to extract one survivor, reducing the time needed accordingly. Rescued survivors can be convinced to help free their colleagues, but won't be eager. The work makes loads of noise, and while the White Mandala is entirely deaf, nobody here knows that.

3: Fungus cavern

The southern wall of the great hall was once lined with a series of tall, fused quartz windows which looked out on some primordial scene of wild beauty. Most of those windows have shattered inward millennia ago, each one admitting a small avalanche of maroon scree. To the southeast, however, there's a 30-foot stretch of windows that instead reveal a natural cavern.

One of the windows in this section was broken outwards by the Lyceum team, and gives access to a space even larger than the great hall. The roar of a waterfall can be heard somewhere within.

Beyond, much of the floor is corrugated with pale blue mycelium, which gives rise to a forest of bulbous fungal bodies around three or four feet high. These are harmless, but inedible.

A river runs through this cavern, spilling down from the ceiling at one end and carving a tunnel to greater depths at the other. The water is cool and clean, if treacherously fast in some places.

Past the fungus and the river, the far end of the cavern is pocked by gravel-choked tunnel openings around three to five feet in diameter. The desiccated carcass of a tremendous cavern worm extends from one of these. The Lyceum's security team killed this thing while exploring the cavern. A few broken arrows remain embedded in it, and there are many more wounds where intact arrows were retrieved.

4: Storage room

At the eastern end of the great hall, a 20-foot doorway opens up into a roughly dome-shaped space which might have once been a temple or arena. If the White Mandala's location hasn't already been established, there's a 50% chance it's in here. Otherwise, it's at the planar well (5).

The section of the dome nearest the hall has been furnished with tarps and wooden crates from the surface, and was used as a triage, cleaning, and storage area for artifacts retrieved from the ruins.

Immediately by the entrance, there are two dust-strewn tables where objects were cleaned and examined. One table is askew, and the other has been smashed. The area is strewn with tumbled chairs, lanterns, cleaning tools, and writing utensils. There are also three notebooks cataloging the items retrieved, various digging implements (enough to outfit nine people), a few mechanical tools, and replacement parts for the elevators.

To the left of the entrance, the incomplete skeletal remains of 38 humanoids have been arranged on a series of tarps and a few tables. A small card with a hand-written number accompanies each one. The skeletons appear human, but possibly pathological: distortions and asymmetries mark nearly all of them.

To the right, more tarps and several crates host a multitude of mundane—if frequently ambiguous—ancient objects. Nothing here would be valuable to anyone who's not a scholar of Tshale studies; all the stuff somebody might steal was already hauled back to the Lyceum.

Directly across from the entrance—almost in the center of the dome—are dozens of smaller wooden crates that have been methodically arranged in a 30-foot circle and torn open. Within each one, a Tshale artifact sits among burlap cushioning and splintered wood. Many of these bleed a lurid violet haze into the air: They're all magical, and their enchantments have all been rotting away into mildly dangerous arcane pollution for millennia. They're basically useless, but they could be fully dissolved to harvest their remaining magical power.

That's why the White Mandala comes here: It's used to a much more high-energy environment, and the stinking miasma of these relics is more comfortable than the cold sterility of the rest of this place.

The further reaches of the dome are partially collapsed.

5: Planar well

At the western end of the great hall, a 10-foot doorway opens up into a 40-foot circular chamber. A pair of thick, wooden doors lie splintered on the floor of the great hall, obviously torn free when something huge pushed out from the smaller room. If the White Mandala's location hasn't already been established, there's a 50% chance it's in here. Otherwise, it's in the storage area (4).

The planar well chamber is dominated by a 20-foot disc of black, glassy material set into the green stone floor. There's a bowl-shaped depression to the left of the doorway, and the whole room is slightly concave. Channels cut into the floor lead from the bowl and across the floor, ultimately encircling the disc in a pattern of grooves. A dead sheep lies in the bowl, and its days-old blood crusts the channels on the floor.

There are five corpses here: Professor Olstokken, two assistants, and two guards. They're mangled much worse than the folks in the great hall. Their clothing and gear are pretty much destroyed, but Olstokken still has some salvageable jewelry and her excavation wand. This device can soften stone into something like clay, and suck up loose earth or sand and store it in an extraplanar space. It's only got a little charge left, but a qualified professional could fully recharge it. (And a desperate fool could attempt to charge it with the artifacts in the storage room (4).)

This room is the device that summoned the White Mandala. It's a powerful point-to-point teleportation device, and while its enchantment is wildly uncalibrated, it's not rotting like those of the devices in the storage area. An expert could reinitialize it, and possibly gain access to other Tshale sites. Even in its current state, it could be used to send the White Mandala back to its own world, if the creature can be in position when the well is activated through a fresh blood sacrifice.

The creature hangs out in here a lot, just waiting for the way back home to open up. Unfortunately, it fears and hates every living thing it's met in this world, so it's unlikely to be cooperative unless communication can somehow be established.

The White Mandala

The creature ensnared by the Professor's experiment is a radiate mass of wings that branches fractally out from a complex central joint, each one streaming with rubbery "feathers" that are extensions of—rather than extrusions from—the thing's smooth, matte-white integument. Fist-sized iridescent black spheres—electromagnetic sensory/communication organs—are placed around the body haphazardly. Three pale pink gripping legs, spined and joined like insect limbs, unfold from the thicket of wings. The whole thing is about 30' in diameter, but it can collapse itself tightly enough to fit through a regular doorway.

It's sapient, but pretty dumb, and used to being part of a collective—something between an army and an extended family. It's freaking out badly over being dumped in a strange world, but even worse over being alone. It's trapped behind enemy lines, and all local life is the enemy. It just wants to go home. It doesn't speak or even hear, but it could be reasoned with if contacted via telepathy or something.

Under most circumstances, it will attack anyone in the same room with it. It's not very interested in chasing people, and would prefer to stay in the storage area (4) or the planar well (5) unless somebody really bothers it. If it's completely infuriated, it might even try to fly up the shaft (1A) to kill someone, but it's not eager to get near the elevator chains. If it's hurt, it will flee to the magic artifacts in the storage area (4), which gradually heal it.

It can fly reasonably fast, even in the confined spaces of the dig site (although it does a lot of just pushing itself along the walls, here). It's stupidly strong for something that weighs about as much as a tall human adult, and flails away viciously at multiple targets within reach. A solid hit from it can send a target dumpling several feet away. It can see in the dark and in all directions, and detect magical auras and lots of other stuff. It has no sense of hearing or smell. Raw magic attacks (like magic missile, not fireball) heal it rather than harming it.

I'd maybe use the stats for an owlbear, but give it flight, more attacks, and some kind of knockback effect.


RSS feed

RSS icon

So I'm attempting to get an RSS feed working for this website. Since I'm not using a real blog platform or anything similar, that means I'm stuck hand-coding my RSS. Or, technically, that I'm stuck making my own generator for it.

Surprising nobody, I've gone and made a Google spreadsheet thing in an attempt to solve this problem. The idea is that I can just enter some information about my latest post and have it output something that only needs a little hand-editing to make a working rss.xml file. It seems like it works so far, but I guess we'll see!

I know that I ought to do an Atom feed too, but right now that looks like a lot of additional hassle for no identifiable additional benefit. So I'm putting it off for now.

I will take this opportunity to remind folks that free, cross-platform feed readers are still a thing after the lamented death of Google Reader. I'm currently using Feedly, and it gets the job done ("the job" mostly being the aggregation of lots of RPG blogs and a few webcomics into one place). It keeps track of my feeds and activity between desktop and mobile use. I should admit, though, that Feedly exhibits that all-too-familiar pathology of the modern app and web platform: the useless and undesired "AI" features. Seems like it only actually functions on the paid version of the service, and it's as easily ignorable in the free version as "premium" features normally are. Anyway, the thing works fine.

I have considered trying out Thunderbird or FeedReader as an alternative, though.

Oh, I should also mention that I never would have considered hand-coding an RSS file if my good friend Amanda—who builds some really nice websites for her comics projects—hadn't assured me it was possible. Thanks, Amanda!


Nexi Random Word Generator

Fragment of a sceenshot of the Nexi.com Random World Generator. Primarily features a 4-column block of nonsense words like 'topedic' and 'othemoboa' in all caps, under a header reading 'Your Freshly Minted Words'.

I really do intend to post more frequently than this, but I got really wrapped up in unnecessary and self-indulgent aesthetic changes. Honestly, that's a big part of why I started a site in the first place.

Anyway. Are you familiar with the Random Word Generator at Nexi.com? Created way back in 2004 by Sean Puckett, this little tool takes a submitted mass of text, looks at the letter selections and sequences, and outputs a set of 100 new words based on the patterns it recognizes. I think anybody who's into TTRPGs will recognize that this is massively useful for creating names for fantasy settings and such.

A really easy way to get good results from the generator is to feed it piles of culture-specific names from Kate Monk's Onomastikon—another excellent old roleplay resource, this one going back to 1997! Mixing names from two or three different cultures also works great. And of course you can do the same with names from fictional sources, or text blocks of regular words.

The generator's output is all-caps, and arranged in a set of space-separated columns, and I don't really find that ideal, so naturally I've created a spreadsheet tool to reprocess it.

Nexi output processor

Here's how it works: First, make your own copy of the spreadsheet so that you can edit it. Then, you just paste your Nexi-generated text into the blue cells. The output in the green cells will be arranged in a single column, changed to standard capitalization, sorted alphabetically, and deduped.


Random generator spreadsheets

Fragment of a Google Sheets spreadsheet. One column lists catagories of descriptive elements: head, horns, body, color, detail, detail. The next column, marked roll, lists a number for each element. The last column, marked result, lists descriptions for each element: goat, tiny spikes all over head, bulging with throbbing organs, dingy white, human hands for feet, 6 legs.

So, my other favorite TTRPG tool is Google Sheets. Spreadsheets in general, really, but the convenience of Google Sheets (and Google Drive, etc.) has me pretty solidly hooked into that ecosystem. Anyway, I'm a huge fan of generating RPG stuff by rolling on loads of tables—I really oughta do a whole post about Jennell Jaquays' Central Casting books, someday—and you can make that process a hell of a lot faster and more flexible by building your tables in a spreadsheet and using random number formulas to roll the results for you.

So, here's an example.

Osluth demon description generator

The irrelevant backstory here is that I was running a dungeon that had Orcus cultists accompanied by these demon goats, and in addition to recasting Orcus as a death god named Osluth, I decided the demon goats needed more varied and fucked up appearances.

Anway, I'd like to explain how this whole thing works, and it will hopefully be useful to the narrow sliver of humanity who wants to make random generators, and has some knowledge of how spreadsheets work, but doesn't already know how to do all of this stuff. And who actually encounters this post somehow.

The box on the left contains the actual generated description of the beast, while the rest of the spreadsheet comprises tables of possible results. The blue values are generated by formulas, while the black text is all static values. If you reload the spreadsheet, all of the random number formulas will reload, produce different numbers, and effectively roll up a new description. Reloading is kind of slow, though. It's better to just copy the sheet for yourself (File > Make a Copy) and click that green checkbox in the corner. The checkbox doesn't really do anything-it's just a TRUE/FALSE field that's not connected to anything else on the sheet-but all of the randomizers trigger every time something changes, so it functions as a handy reroll button.

Here's how it works. Each of the subtables in the sheet has three columns of numbers: chance, min roll, and max roll. "Min roll" and "max roll" are just the range of numbers that produce a given result, just like on a regular dice table. "Chance" is what determines how big that range is. The first min roll value in a table is always 1, so there's no formula generating that. Each max roll value is (min roll + chance) - 1, making the total range for a given result is equal to the chance value. Min roll values after the first are always just the previous line's max roll + 1.

So that first subtable—the one that generates the demon's head—is just a 1d17 dice table. It's four times as likely to produce a goat head as an ox head, because the "goat" result comes up on a roll of 1–4, while "ox" only comes up on a roll of 7.

Here's how we get the spreadsheet to roll a d17. The "roll" column of the description generator is produced by formulas like this: RANDBETWEEN(1, SUM(F:F)). That SUM(F:F) part just adds up the contents of column F. That's the "chance" column of the head subtable, and it sums up to 17, which is of course the same value as the maximum roll on that subtable. RANDBETWEEN(1, SUM(F:F)) generates a random number between 1 and the sum of column F, so it's effectively rolling 1d17. Each cell in the roll column looks at the chance column of a different subtable, and generates a number between 1 and that subtable's maximum roll.

The "result" column interprets the rolls using formulas like this: VLOOKUP(C2, G:I, 3, TRUE). What this means is that it takes the value in cell C2 (the "head" roll), and looks it up on the table in columns G though I (meaning "min roll", "max roll", and "head" in the head table), and returns the matching result in the 3rd column of that range (the "head" column). The TRUE at the end there tells the formula to do an "approximate match", meaning that it will treat the column G values as minimum thresholds to match: A roll of 10 will match the value 8, and produce a result of "boar". If that TRUE argument was instead set to FALSE, the formula would be in "exact match" mode, and a result of 10 wouldn't match anything. (Note that the VLOOKUP formula doesn't actually look at the max roll column at all; it's just the min roll one that matters. I only create those max roll columns because I like to see the actual range.)

You might notice one slightly odd entry at the right side of the sheet: The 8 result on the "detail" subtable has its own little random generator inside it, using this formula: MIN(RANDBETWEEN(5, 9), RANDBETWEEN(5, 9))&" legs". So we've got two RANDBETWEEN functions, each one generating a result between 5 and 9. The MIN function looks at the two results and picks the smaller one. The &" legs" at the end there just appends " legs" to the resulting number. So the goat demon that gets this result has between five and nine legs, with smaller numbers being more common than large ones.

I could get into more advanced stuff here, but that would call for a whole new custom example spreadsheet, and this post is already too long. Anyway, I hope it's actually useful for somebody!


The luck roll

1 No, and... - 2 No. - 3 No, but... - 4 Yes, but... - 5 Yes. - 6 Yes, and...

I'm going to start this site off by talking about my favorite TTRPG tool, the luck roll. Loads of groups do something along these lines, but here's mine.

This is a procedure for resolving those questions that can't be answered by the established fiction, the GM's notes, or the player characters' actions—things like "Is there a fire extinguisher handy?" or "How many patrons are in this bar?" or "Did anyone notice all the commotion we just made?" First, you rephrase the question in yes-or-no format, so something more like "Is the bar crowded?" I kinda prefer to ask in a way that makes "yes" the better result for the player characters, but that's not really important.

Then, you just roll a d6 and interpret the result as follows.

  1. No, and...
  2. No.
  3. No, but...
  4. Yes, but...
  5. Yes.
  6. Yes, and...

The "and" results intensify the answer. The "but" results mitigate it. For example:

"Is there a fire extinguisher handy?" "No, and there isn't one in the whole building."
"Is the bar crowded?" "Yes, but you don't know anyone here."

It's extremely simple, but easily applied to an infinite range of situations. As a GM, I find it really fun to fill in those and/but details. I also love to roll a die and find our whole game taken in a new direction by the result.

I also use the luck roll during session prep to come up with background details, and occasionally base other random-roll tables on the same basic format. For example, I had my players roll on this "Do I escape the trap?" table when they wandered into a dungeon room with a falling cage trap.

  1. No, and... they're hit by the cage for 2d10 bludgeoning damage, and stuck inside it.
  2. No. They're stuck inside the cage.
  3. No, but... they're near the cage wall as it falls, and notice in time to try to escape. They can make a Dexterity save to jump away, but at a risk: Save result 10-, they're pinned underneath the cage for 4d10 bludgeoning damage, restrained, and prone. Result 10–14, they're hit for 2d10 bludgeoning damage, but escape. 15+, they escape completely.
  4. Yes, but... they're clipped by the cage's edge or falling debris, and take 1d10 bludgeoning damage.
  5. Yes. They're outside the cage when it falls.
  6. Yes, and... the trap isn't even triggered if everyone in the room rolls result.

I should point out that this idea was very much influenced by FU: the Freeform Universal RPG. That game arranges its results slightly differently on the die, but it's pretty much the source of that Yes/No/And/But language for me, far as I remember. I've never actually used FU itself, though! Which is a shame, because it looks brilliantly simple.

So, that's the luck roll. It's handy.


So I wanted to have a website again...

Hey, all. I've been getting tired of platform-delivered, algorithm-managed media for a while now, and kind of yearning for the era of personal sites, webrings, hand-coded HTML, and the freedom to build whatever I wanted. So I've been saying—in all my social-media places, like Bluesky and Twitch and whatever—that it's time to return to the Old Ways. Then I watched that recent Homestar Runner "Back 2 a Website" cartoon and I realized it was finally time to actually do it.

So, here it is: The latest version of the Groove Pit—which is what I've called the various incarnations of my personal website since literally some time in the 1990s.

I'll probably mostly put TTRPG stuff here, and arrange it in a blog-like format. I don't think I'll add an actual blog, because content management systems are always vulnerable to hacks, or to comment spam, or to just rotting away over time. But if I build my site out of regular-ass HTML, and NeoCities gets rolled up in some corporate Katamari, I can just take the same files and put them up somewhere else.

That said, I will probably make an RSS feed! RSS is cool; it's absolutely one of those technologies that folks should rediscover.

Anyway, this whole thing is very much a work in progress. I'll spare you the "under construction" animated GIF, though.