If you like my work, please consider contributing via Patreon.
Obligatory GitHub Link.

Phew. This is a heady topic.

Since I first wrote my algorithm to randomly assign deities to characters about a year ago, I got this idea in my head about its eventual replacement: an algorithm that would randomly select from EVERY possible cosmic/divine entity.

I imagined a database of every cosmic being in D&D and that quickly grew into a database of every cosmic being… all of them.

“But there are so many,” you might say.
“Yes there are,” would be my reply.

I started on my database yesterday, and it has already grown to over 600 entities–and that’s just the “lesser” beings: jotnar, demons from the Ars Goetia, and Enochian angels. I will continue adding entities as I find lists.

At first I didn’t really have so much of a plan as the motivation to work on it. So I did. I came up with the plan while I hacked away at the problem.

I created enums for “Greater” and “Lesser” beings, then struggled with definitions. I’ll cut to the chase and tell you my solution: “Greater” beings are the stars of your campaign. “Lesser” beings are everything too big for a creature type.

But the big definition was “immortal.”

I realized that an “immortal” had to meet two pretty broad criteria: they could be pretty much any being that a) didn’t succumb to old age, and b) could (potentially) accept prayers/devotion in exchange for granting power.

In the process of adding jotnar, I realized that I didn’t have time to read about every unique jotunn in Norse mythology to best attribute alignment and domain to them. I decided instead to write a function to randomly assign CE, CN, or CG alignment and a handful of appropriate domains. It worked really, really well.

I was impressed with myself. Pat on the shoulder.

Then in the process of adding Enochian angels (my second major addition), I realized something incredible: I could abstract the randomization process for EVERY entity, and just supply the program with a list of names and however much of a “push” in the direction I wanted to give the class of beings.

Now when I generate jotnar, I provide a name and an “axis” (Chaotic). It then assigns one of three Chaotic alignments to each jotunn plus a random number of domains. The majority (40%) of “lesser” beings have a single domain.

They have no more than four domains.

The majority (40%) of “lesser” beings with a single domain have the Nature domain. The next 30% are split between the Life and Light domains (representing masculinity, femininity, life, agriculture, solar deities, et al). 20% are split between Trickery and War. The last 10% are completely random.

Beings with two, three, or four domains are assigned completely random, owing to my desire to “Keep It Simple.”

Here’s the next great idea: pantheons.

So, when I implement pantheons, they will use my faction rules: a pantheon is essentially a faction of cosmic beings that struggles both internally and with other pantheons. They will use my faction interface (still a work in progress).

Finally, and perhaps the most “exploitative” part of this endeavor, was my realization that I could use these enormous name lists to jump-start my name generator for characters, places, and objects (weapons, armor, spacecraft, etc).

Names are already grouped thematically (e.g. religion/culture, pantheon, type), which means that keeping names thematically associated within groups should be trivial. Worlds within the “Odin system” will have names from Norse mythology.

Phew. That was a lot to cover.

Back to work.