The Character Generator
So, while the generator is based on the SotDL tables, there is absolutely a bit of editorializing to it. I more or less tweaked the lists as I entered the data, and when an option offered a choice, I tried to have a randomizer make it, because it seemed silly not to. A number of the changes are consistent enough to bear mention:
- If there's a random value in the entry ("You spent 1d6 years in prison"), the number is rolled.
- If the entry has an "or" (you were raise by a Witch or a Druid), then it picks one. In appropriate cases - usually from the interesting thing list - (You have a small magnet or a silver mirror), the entry was split into two entries.
- I think there was only one of these, but "GM Chooses" entries were pulled out.
- 25% of the time, the character will lower one stat by one and raise another by one at random.
- Characters have a preferred "stack" of languages, and if they can speak or read & write another language, they'll take the next one from the list.
- If an entry seems like it would give the character an item ("You have a sword you took from a fallen warrior") then that item is added to inventory. Spotting these entries is entirely manual, so I may have missed some.
The thread you may see through these design decisions is the removal of choices. This is something I'm generally opposed to at the table, but I feel it's in line with the purposes of a generator like this. It's a script, not a cop, and if a player wants to take one of these and alter it, they can absolutely do that. But the rest of the time, the goal is to have something fully formed to look at, either to use or as inspiration. Leaving dangling choices undercuts the value of hitting the generate button multiple times and seeing what you get. That's just opinion, of course, but all software is opinionated, and it can be useful to know what those opinions are.
Current Version
I don't have numbered releases (yet) and should probably add them. At this writing, I have a workable version (on desktop) which can generate a character from any of the core 6 ancestries.
What's Next?
- Get this working on mobile
- Maybe add the comapnion Ancestries?
- General layout cleanup. Try font and size options especially.
- Languages are a bit kludgy. Make them a bit more dynamic.
- Turn the recurring Math.floor(Math.random() * array.length) bit into a function. I genuinely have no idea why I didn't do that at the outset.
- Add a note section to indicate stats have been bumped?
- Add version numbers and standardize release notes so I don't have to paste this list in two places.