Dec 8, 2023

40,000 Sectors: A Generator

I got Imperium Maledictum, the new Warhammer 40K RPG the other day. It looks good overall, I'll be writing a longer and more detailed review shortly. As part of my campaign prep for an upcoming test of the system, I decided to relaunch the Tellian Sector. To make it bigger, and represent the changes as 40K moves into the 42nd millennium and the "Indomitus Era", I decided I would make an automatic sector generator. 

Here it is, free to the public, as an Excel spreadsheet you can use yourself.

This is based off a heavily modded and "40K-ified" version of the Stars Without Number 1e planet generator. If you know fairly basic Excel (how the INDEX and RANDBETWEEN formulas work, specifically), you can mod it fairly extensively if you don't like the probability ranges I've assigned to various categories. 

To get started:

1) Create a new worksheet and copy / paste the values only from columns L through X from the generator template worksheet to that new worksheet. 

2) You'll want to insert two columns at the left-hand side and copy over the counters from columns J and K on the generator template worksheet so you can keep track of the rate of incidence of each item in each category. Be sure to make this a regular paste (not values-only) so it preserves the counter formulas in K

If you delete it, the counter formula is: =COUNTIF($[column letter]$[number of first row of column]:$[column letter]$[last row of column], [column letter and row number of the entry you want it to track). 

e.g. =COUNTIF($F$1:$F$121, A2) tells Excel to count everything in column F between rows 1 and 121 that matches the value in A2 (which in this table is the word "Agri-World")

Expanding it:

All you need to do is select the bottom row of columns L through X on the generator template and drag them down until you have as many planets as you want. Nice and easy! It's Excel, so I recommend not doing more than about 10,000 at a time unless you've got a top of the line machine. Also, it's easier to handle certain later processes if you do smaller batches at once, so consider making each worksheet a subsector and then generating however many subsectors you want.

If you screw up the formula for any reason and need to rewrite it, all of the columns are basically filled with:

=INDEX($B$2:$B$101, RANDBETWEEN(1,100),0)

Where B2 and B101 are the 100 entries to the left in column B (Planet Type), and RANDBETWEEN generates a number between 1 and 100 and then grabs a corresponding row coordinate out of column B and INDEX dumps the value in that cell, e.g. "Hive World" into the formula's own cell.

De-duping the tags:

This is one of those things where working in smaller batches will keep you sane. Writing a formula to de-dupe rows across three columns is kind of a pain, so you'll need to manually dedupe if any of the Notable Features tags are duplicates on a given planet. There are 100 possible tags, so you'll rarely run into dupes in small batches.

Organising planets into systems:

1) Starting from the first cell under "System", look at the number (n) in it, and count down (n-1) squares, deleting the entries in columns C and D ("System" and "Star Type" respectively).

Here's a picture of what that looks like once you're done:

So you can see that there's a single system with 6 in the System column and an A in the start type with five blank spaces under it. All of the planets that are blank like that are in the same system.

The numbers in the system column are generated by running a simple formula that divides 120 by a random integer between 12 and 120. The formula is here: =120/RANDBETWEEN(12,120)

120 was selected as the numerator because it's the number of planets in my sample sector and the default for this generator. Just change that to however many planets you're actually working with. My recommendation is that whatever size you're working with, the minimum value for the random integer should be set up so that no more than 10 planets per system are generated, and the maximum value so that at least 1 planet is in each system. So if you had 10,000 planets, you'd go with a minimum value of 1000, and a maximum value of 10,000.

Making sense of things:

This is also the stage where I recommend you look at the actual entries and make any manual changes you want. I typically use the counters at the side (it's why I included them) and use a Find/Replace to alter the cell colours: orange for ones I want to reduce, green for ones I want to increase. For example, if there aren't enough Agri-Worlds, I'll identify what I do have a surplus of that I don't want (say, Penal Worlds) and turn some Penal Worlds into Agri-Worlds. So long as you don't misspell things, the counters should automatically update.

Naming things:

You'll want to delete the remaining numbers in the System column (column C), and start punching in names. I have not created an automatic name generator here because it would be convoluted and I've never really needed one myself. Once you have the systems named, go through and name each individual planet, station, etc. in column E

That's basically it.


1) Open the sheet, and copy it

2) Copy and paste the values from columns L through X. Once you've done that, delete columns A through I.

3) De-dupe the tags manually.

4) Break the planets up into systems

5) Name the systems and planets

6) Fiddle with entries until you're happy

7) Remember to save your work!

A few notes on the Tellian Sector and this generator:

I intentionally left a lot of the tags more generic rather than less so you can mod them to your own taste. Some of the tags and such also represent my own interests in the 40K setting, and I encourage you to change them if you want something different.. 

There's a lot of Xenos and Hereteks, comparatively low levels of Chaos, and no Necrons, Orks, Eldar, or Space Marines explicitly mentioned. I have small amounts of Eldar and Space Marines in the Tellian sector, but they're custom-placed by me rather than something I leave to a random generator.

There's also a fairly high chance of people having archaeotech levels of technology, and a lot of xeno collaborators because these are what make the Tellian sector an area of interest to the Imperium (for good or for ill).

Anyhow, enjoy! I don't care about copyright, credit, any of that stuff, so use it as you please.

Mar 8, 2023

What Have I Been Up to?

It's been a while since I've updated this blog, so here's a brief apology and explanation of what I've been up to instead:

I've been playing a bunch of 5e. Broad strokes, I'm in one weekly campaign, and one campaign that is going from biweekly to three-times a month. The former is Al-Qadim meets Dark Sun, the latter Dark Ages Arthuriana. I don't really love 5e as a system, and I'm skeptical of D&DOne as an improvement on it, but good groups can make even a mediocre system serve as the basis for a great campaign.

I was running a Pathfinder 2e campaign, but a leak in my upstairs neighbours' apartment damaged the computer I had everything written out on, so it's on hold until I can get it fixed. Unfortunately, the money that I would normally have to do so went to paying out of pocket for veterinary care for two of my cats, one of whom has cancer. The other one is fine, but was stressed out - possibly by her lifelong friend having cancer. It cost me CAD 1,200 per cat to sort this out. This all came right before Christmas and the time of year I have to renew everything from my license to car insurance to my healthcard, which meant I'm tapped out until April.

Pathfinder 2e is great, and very fun to run as a referee, but just complicated enough that when you lose all of your notes for it, it's a non-trivial cost to replace them. I have them backed up in the cloud, but a key encounter planning tool has a computer-specific cookie it uses in place of a login, and until I can get the computer fixed, it's inaccessible. 

I will be running a game shortly. For the Arthuriana 5e campaign, we are doing character preludes where PCs take turns running sessions for the other players covering off one another's backstories. It's quite fun, basically a one-shot interlude. If you've never done it, it has the interesting side-effect of making PCs invest in one another' since you've got to plan an adventure based around someone else's backstory and then run it. I'm running a hunt for a white stag set in Scotland's Cheviot Hills where an aristocrat's bastard son will save the life of his older brother, the legitimate heir, and begin his journey to becoming a hero.

I also got a third cat, a now-eight-month-old kitten, a female ginger tabby (somewhat uncommon), the only survivor of her litter, who is a perfect blend of mischevious and good-natured. Her favoured class is definitely rogue, as her great delight is to run off with chopsticks, bits of paper, pieces of my wife's house plants (all cat-safe), stuffed mice, and other detritus making a sort of cackling trilling noise. She recently acquired fleas, despite being an indoor cat, and is undergoing her first course of flea killer. Here's a photo of the little trouble baby as she carouses in her pursuit of enough XP to get to level 2:

Ancestry: Goblin; Class: Rogue; Alignment: Chaotic Neutral

My upstairs neighbours (of the aforementioned leak) are also interested in playing "Dungeons and Dragons" at some point. I gave one of them my copy of Blades in the Dark to read over because I think it might be their speed, after my initial proposal to play Quantum Starfarer (an ultra-light version of Cepheus) was turned down. They're more interested in fantasy than in science fiction. They've never tried RPGs before, so I'm going to run an introductory game for them and their friends at some point this year. More on that when it happens.

Lastly, I'm changing jobs. I've been extremely busy with work over the past year, which is one of the major reasons I haven't been blogging. I'm hoping the new job comes with an improved work-life balance which will allow me to blog more this year.