Obligatory GitHub repository link.

I finally implemented cantrips for Fighter: Eldritch Knight and Rogue: Arcane Trickster.

It technically wasn’t very hard but it did mean that I wrote a new function to select attack spells under specific circumstances. Every Arcane Trickster gets Mage Hand (explicitly) but only fighters and rogues with an intelligence greater than 11 will select attack spells.

This is kind of logical but also totally intended to protect against lots of really crappy random builds.

However “realistic” it might be for a bunch of fighters and rogues to choose attack spells with an otherwise crappy int score (necessary for casting their spells), this makes for super-boring encounters where they might try and throw a spell with no chance of success.

I didn’t have to think about it very long, and the function wasn’t difficult to write.

Really, it just avoids lots of annoying problems in the long run. I don’t want to estimate damage and stuff for attack spells that will hardly ever hit, and I don’t care if I’m breaking from “reality” in that way.

Some of you might argue that it’s ACTUALLY unrealistic for a fighter or rogue to choose a spell they couldn’t hit with (due to low ability score) and I’m sorry but actually, I think you’re wrong there. People make stupid decisions all the time, and learning spells is kind of random.

Alex of Cirsova wrote a bit about the odd randomness of spell acquisition and however the rules might differ between editions, I want to try and capture some of that here.

Not every character is optimal because not every player is optimal–and sometimes players make weird choices based on the environment or personal experience, neither of which is predictable. In the end, I believe it’s best to represent it randomly.

On a related tangent, I can still generate 5,000+ PCs in less than a minute but the new features I’m adding are DEFINITELY beginning to slow down the generator. I’m sure that once I have a handle on all this stuff I can begin to optimize my code. But I’m finding that I’m becoming a LOT less picky as the project expands.

Still to do of course, is the rewrite of gear use: on the one hand I can almost certainly reduce the amount of code it takes to get through the gear usage process, but on the other hand it will probably take more memory & processing power to iterate through those inventories (however tiny).

There’s always more to do, and it’s exciting to see how things develop!

I figure that once I reach a certain point and become truly “stuck,” I will change gears and develop a character generator for another edition of D&D until I can become “unstuck.” I’m looking forward to reading B/X in depth so I can write a character generator to aid in rapid NPC/rival adventurer deployment.